好的,场景如下。 . .
- 将一堆文件移动到 GIT 中的一个新文件夹下
- 现在我想查看其中一个文件的提交历史
- 通常
git 日志文件名
就足够了 - 由于文件已移动,我可以使用
git log--follow filename
实现此目的
- 通常
--follow
命令为我提供了完整的历史记录,但遗憾的是我无法比较特定文件的历史记录中的两个 SHA
例如,我可以运行 git diff SHA1 SHA2
:这将返回这些提交之间所做的所有文件更改。
但是,如果我尝试将其降低到文件级别进行比较(git diff SHA1 SHA2 filename
),它什么都不返回!
(尽管之前的 SHA 差异显示了此文件中的更改)
有没有人遇到过这个..
我知道在两次提交之间这个文件已经移动,所以我尝试了类似的变体
git diff --follow SHA1 SHA2 filename
没用。
有没有其他人遇到过这种情况,如果有,他们有解决办法吗?
最佳答案
另一个值得研究的选项是 -M
。但是,在可能的情况下这也无济于事,您可以像这样手动告诉 git 正确的文件路径:
git diff SHA1:path/to/file1 SHA2:path/to/file2
(路径需要相对于 repo 的顶层)
关于git - 无法在已移动的文件上运行 git diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082814/