git diff和git diff HEAD有什么区别?

时间:2018-12-25 08:11:14

标签: git

我在Atlassian上阅读以下内容时偶然发现: https://www.atlassian.com/git/tutorials/saving-changes/git-diff

serialize_precision = -1
  

此示例在被调用时作用域为./path/to/file,它将进行比较   工作目录中针对索引的特定更改,   显示尚未上演的更改。默认情况下git diff将   对HEAD执行比较。在示例中省略HEAD   上面的git diff ./path/to/file具有相同的效果。

我发现在某些情况下它们将是不一样的,如果暂存了我拥有的文件,则git diff不会发生任何变化。但是对于git diff HEAD,它将与head而不是index进行比较。那么下面的句子错了吗?

  

默认情况下,git diff将对HEAD执行比较

因为它与索引进行了比较

1 个答案:

答案 0 :(得分:2)

我对您的问题的理解是,文档中给出的示例假设阶段是空的,尤其是与工作目录中的阶段相比,没有阶段化所讨论文件的版本。

在这些假设下,HEAD之后出现的git diff选项是不必要的,因为在这种情况下,省略HEAD将导致舞台被使用。而且这两个都应该相同,因此HEAD因此成为可选的,至少在此示例中如此。