5

好的,场景如下。. .

  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 --follow SHA1 SHA2 文件名

无济于事。

有没有其他人经历过这种情况,如果有,他们有解决方案吗?

4

1 回答 1

4

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

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

(路径需要相对于 repo 的顶层)

于 2013-06-13T09:20:20.130 回答