git:在git fetch'之后查看更改

时间:2016-09-08 05:06:13

标签: git git-log git-fetch

在git fetch之后,我想查看从上游引入的代码更改。

我可以使用git log -p ..@{u},但输出不会包含拉动请求的合并提交/合并的差异。

是否有办法在输出中包含这些内容,这将产生自上次提取以来发生的变化的全面历史记录?

谢谢

1 个答案:

答案 0 :(得分:1)

当使用git log -p将提交视为补丁时,它确实如你所注意到的那样 - 当需要对它们进行区分时跳过合并提交。也就是说,它会像往常一样显示日志消息,但根本没有差异。

您有三种控制方法:

  • -c(一个连字符和一个小写的C):显示一种形式的组合差异
  • --cc(两个连字符和两个小写的C):显示另一种形式的组合差异
  • -m:" split"每次合并,显示针对每个父级的补丁。在这种情况下,您将看到两次日志消息。

组合差异格式在a separate section of the git diff documentation(和其他几个共享此文件)中描述。但是出于某种原因, 1 的关键事实是hidden in this earlier section

  

请注意,组合差异仅列出从所有父级修改过的文件。

通常这实际上就是你想要的:如果合并使文件README.txt与父提交中的README.txt相同,那么显示差异可能并不有趣其他父提交。但是,如果你没想到这一点,那就太令人惊讶了。打败它的唯一方法是使用-m

1 这对git diff-treegit diff-filesgit diff --raw有意义,因为该部分本身正在描述将列出的文件< / em>,并且不会列出与至少一个父级匹配的文件。但是,如果你还没有记住这个小事实,只是在文档中搜索接下来的两个部分(&#34;使用-p&#34生成补丁;&#34;组合diff格式& #34;),关键句甚至可能不在你的窗口。我仍然记得被这种烧伤,但多年以后它现在已经被烧毁了。 : - )