为什么我不能使用git log
git log --follow <myfile>
显示一个文件的git log
。
我希望在这个文件中看到所有更改(差异)的日志。 我尝试:
git log --full-diff --follow <myfile>
但是这失败了:
fatal: --follow requires exactly one pathspec
为什么? 我怎样才能得到我想要的差异?
或者,也许,这是git中的错误?
你可以这样得到它:
git diff <file_path_relative_to_project_root>
编辑:
解释 :花了一段时间来理解这一点。 每当使用git log -p <file>
,它会显示提交文件的位置,并单独对同一个文件进行比较。 这意味着如果您想要追踪文件的完整历史记录,您可以添加 - 关注选项并查看完整的历史记录。
但是当你输入这个命令时: git log --full-diff -p file
,它显示你所有提交此文件的提交,现在它不仅显示指定文件的diff,还显示所有文件的diff在提交中被触及。 这意味着它给你多个文件的结果。
如果你尝试这个命令: git log help
你会看到--follow选项只能用于单个文件,所以你可以使用如下命令: git log --follow -p file
因为它只显示结果单个文件。
但它不能与以下命令一起使用: git log --full-diff --follow -p file
因为它显示多个文件的结果,并且此查询会导致错误。
TL; Sahil的DR版本回答:
在git日志中,-- --full-diff
与--follow
,因为“full”表示“显示所有更改的文件”,而--follow
仅适用于一个文件。
解决方案:使用git log --follow -p <file>
。