无法在已移动的文件上运行git diff

use*_*060 5 git diff

好的情况如下...

  1. 将一堆文件移动到GIT中的新文件夹下
  2. 现在我想查看其中一个文件的提交历史记录
    • 通常一个git log filename就足够了
    • 由于文件已被移动,我可以实现这一点 git log--follow filename
  3. 这些--follow命令为我提供了完整的历史记录,但遗憾的是,我无法在此历史记录中比较特定文件中的两个SHA

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

但是,如果我尝试将其降低到文件级别来进行比较(git diff SHA1 SHA2 filename),则不返回任何内容!

(虽然SHA的先前差异显示此文件中的更改)

有没有人遇到过这个...

我知道在这个文件移动的提交之间所以我尝试了类似的变体

git diff - 关注SHA1 SHA2文件名

无济于事.

有没有其他人经历过这个,如果有的话,他们有解决方案吗?

Jan*_*ger 4

另一个值得研究的选项是-M. 但是,在可能的情况下这也没有帮助,您可以手动告诉 git 正确的文件路径,如下所示:

git diff SHA1:path/to/file1 SHA2:path/to/file2
Run Code Online (Sandbox Code Playgroud)

(路径需要相对于存储库的顶层)