gpt4 book ai didi

git diff --staged 在移动的文件上?

转载 作者:太空狗 更新时间:2023-10-29 14:39:40 26 4
gpt4 key购买 nike

这个问题与下面的问题相同: How to do a git diff on moved/renamed file?但有一个重要的区别,我想查看上一次提交的文件版本与当前暂存的版本之间的变化。

git diff --staged 在一侧显示正在删除的整个文件:

--- a/old_path/main.cpp
+++ /dev/null
@@ -0,0 +1,42 @@
- line 1
- line 2
- line 3
- etc.

整个文件被添加到另一个:

--- /dev/null
+++ b/new_path/main.cpp
@@ -0,0 +1,42 @@
+ line 1
+ line 2
+ line 2.5
+ line 3
+ etc.

没有任何方便的方法来比较两者之间的实际差异。

最佳答案

如果您正在查看过去的提交,答案会有点不同,但是 git diff --staged 的使用表明您正在寻找 old_path/main 之间的区别。 HEAD 中的 cpp 和您当前暂存的 new_path/main.cpp,它是从旧文件派生的。在这种情况下,假设 new_path/main.cpp 自上演以来没有新的更改,此命令应该有效:

git diff HEAD:old_path/main.cpp new_path/main.cpp

new_path/main.cpp 还包含尚未暂存的其他更改的情况下,不确定如何准确指定第二个路径的索引中的版本...

编辑:在 gitrevisions(7) 中稍作阅读后,似乎应该处理后一种情况:

git diff HEAD:old_path/main.cpp :new_path/main.cpp

注意 : 没有修订前缀,它应该指定索引中的版本。

关于git diff --staged 在移动的文件上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com