无法在文件移动后运行git diff。

5

好的,情境如下...

  1. 将一堆文件移到GIT中的新文件夹下
  2. 现在我想查看其中一个文件的提交历史记录
    • 通常使用 git log 文件名 即可
    • 由于该文件被移动了,所以可以使用 git log --follow 文件名 来实现
  3. --follow 命令给我提供了完整的历史记录,但不幸的是,我无法比较特定文件在该历史记录中的两个SHA

例如,我可以运行 git diff SHA1 SHA2这将返回这些提交之间所做的所有文件更改.

然而,如果我试图将其降到文件级别进行比较(git diff SHA1 SHA2 文件名),它将返回空值!

(尽管之前的SHA差异显示了该文件内的变化)

有人遇到过这种情况吗?

我知道这个文件在提交之间已经移动,因此我尝试了像

git diff --follow SHA1 SHA2 文件名

但没有成功。

是否有其他人遇到过这种问题,如果有,他们有解决方法吗?

1个回答

4

另一个值得考虑的选项是-M。但是,如果这个选项也无法解决问题,你可以手动告诉git正确的文件路径,方法如下:

git diff SHA1:path/to/file1 SHA2:path/to/file2

(这些路径需要相对于仓库的顶层)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接