为什么我不能使用git log --follow与--full-diff?

mik*_*1aj 5 git git-diff git-log

git log --follow <myfile>显示git log一个文件.

我想在此文件中看到包含所有更改(差异)的日志.我尝试:

git log --full-diff --follow <myfile>
Run Code Online (Sandbox Code Playgroud)

但这失败了:

fatal: --follow requires exactly one pathspec
Run Code Online (Sandbox Code Playgroud)

为什么?我怎样才能得到我想要的差异?

或许,它是git中的错误吗?

sah*_*hil 3

你可以这样得到它:

git diff <file_path_relative_to_project_root>
Run Code Online (Sandbox Code Playgroud)

编辑:

解释:花了一段时间才明白这一点。无论何时 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因为它显示多个文件的结果,并且此查询将导致错误。