为什么我不能使用 git log --follow 和 --full-diff?
Why can't I use git log --follow with --full-diff?
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>
用于显示文件被触及的提交以及同一文件的差异。这意味着如果你想跟踪文件的完整历史记录,你可以添加 --follow 选项并查看完整的历史记录。
但是当你输入这个命令时:
git log --full-diff -p file
,它会向您显示该文件被触及的所有提交,现在它不仅显示指定文件的差异,而且还显示提交中触及的所有文件的差异。这意味着它会为您提供多个文件的结果。
如果你尝试这个命令:git log help
你会看到 --follow 选项只能用于单个文件所以
你可以有这样的命令:
git log --follow -p file
因为它只显示单个文件的结果。
但它不能与以下命令一起使用:
git log --full-diff --follow -p file
因为它显示多个文件的结果,此查询会导致错误。
TL;Sahil 回答的 DR 版本:
在 git 日志中,--full-diff
不适用于 --follow
,因为 "full" means "show all changed files",而 --follow
仅适用于一个文件。
解决方法:使用git log --follow -p <file>
.
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>
用于显示文件被触及的提交以及同一文件的差异。这意味着如果你想跟踪文件的完整历史记录,你可以添加 --follow 选项并查看完整的历史记录。
但是当你输入这个命令时:
git log --full-diff -p file
,它会向您显示该文件被触及的所有提交,现在它不仅显示指定文件的差异,而且还显示提交中触及的所有文件的差异。这意味着它会为您提供多个文件的结果。
如果你尝试这个命令:git log help
你会看到 --follow 选项只能用于单个文件所以
你可以有这样的命令:
git log --follow -p file
因为它只显示单个文件的结果。
但它不能与以下命令一起使用:
git log --full-diff --follow -p file
因为它显示多个文件的结果,此查询会导致错误。
TL;Sahil 回答的 DR 版本:
在 git 日志中,--full-diff
不适用于 --follow
,因为 "full" means "show all changed files",而 --follow
仅适用于一个文件。
解决方法:使用git log --follow -p <file>
.