[英]Why doesn't “git log -- foo” work for deleted file foo?
我的存储库进行了以下更改:
foo
foo
... foo
的内容插入到现有文件bar
的顶部,并在同一提交中插入git rm foo
现在,我想查看已删除文件foo
的日志。 我读过的所有内容(包括SO内容)都说我应该能够git log -- foo
,但是该命令不会产生任何输出。
如果我发现包含删除foo
的提交,则可以git log 1234abcd -- foo
并查看其日志,因此我认为我的foo
路径不是问题。 另请注意, git merge-base HEAD 1234abcd
输出1234abcd[...]
,因此我认为应该证明提交可以从HEAD
到达。 请注意,我的工作树中没有文件foo
(显而易见,因为它已被删除)。 在OS X上使用Git 1.7.1.1。
为什么git log -- foo
不能git log -- foo
对我git log -- foo
,我该如何解决? 谢谢!
您想在git log
上使用--follow
选项,在手册页中将其描述为:
Continue listing the history of a file beyond renames.
实际上,这不仅使您可以查看重命名文件的历史记录,而且还可以使您不再在工作树中查看文件的历史记录。 因此,您应使用的命令应类似于:
git log --follow -- foo
更新:
Git 2.9+现在默认为所有git diff
和git log
命令启用了此功能:
默认情况下,面向“ git diff”和“ git log”系列的瓷器级别命令的最终用户将启用重命名检测; 您仍然可以使用“ diff.renames”配置变量来禁用此功能。
感谢x-yuri的注意!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.