为什么我不能使用git log - 跟随--full-diff?

时间:2015-08-05 09:33:54

标签: git git-diff git-log

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

我希望在此文件中看到包含所有更改(差异)的日志。我试试:

git log --full-diff --follow <myfile>

但这失败了:

fatal: --follow requires exactly one pathspec

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

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

2 个答案:

答案 0 :(得分:3)

你可以这样:

git diff <file_path_relative_to_project_root>

<强>编辑:

<强>解释: 花了一段时间才明白这一点。每当 使用git log -p <file>它显示文件被触摸的提交,并且仅针对同一文件进行差异。这意味着,如果您想要关注文件的完整历史记录,可以添加 - 关注选项,然后查看完整的历史记录。

但是当你输入这个命令时: git log --full-diff -p file,它显示了所有提交此文件的提交,现在它不仅显示指定文件的差异,还显示提交中触及的所有文件的差异。这意味着它会为您提供多个文件的结果。

如果您尝试此命令:git log help 您会看到 - follow 选项只能用于单个文件 你可以得到这样的命令: git log --follow -p file因为它只显示单个文件的结果。

但它不能与以下命令一起使用: git log --full-diff --follow -p file,因为它显示多个文件的结果,此查询会导致错误。

答案 1 :(得分:3)

TL; Sahil的答案的DR版本:

在git日志中,--full-diff不适用于--follow,因为"full" means "show all changed files"--follow仅适用于一个文件。

解决方案:使用git log --follow -p <file>