git:审查 'git fetch' 之后的更改
git: reviewing changes after 'git fetch'
在 git 获取之后,我想查看从上游引入的代码更改。
我可以使用 git log -p ..@{u}
,但是输出将不包括拉取请求的合并 commits/merges 的差异。
有没有办法将这些包含在输出中,从而生成自我上次拉取以来发生的更改的全面历史记录?
谢谢
当使用 git log -p
将提交视为补丁时,正如您注意到的那样,它会在需要区分它们时跳过合并提交。也就是说,它像往常一样向您显示日志 message,但完全没有区别。
您可以通过三个选项来控制它:
-c
(一个连字符和一个小写 C):显示一种形式的组合 diff
--cc
(两个连字符和两个小写字母 C):显示组合 diff 的另一种形式
-m
:"split" 每次合并,显示针对 每个 父级的补丁。在这种情况下,您将看到两次日志消息。
a separate section of the git diff
documentation (and several others that share this file). For some reason, though,1 a key fact is hidden in this earlier section:
中描述了组合差异格式
Note that combined diff lists only files which were modified from all parents.
通常这实际上是您想要的:如果合并保持文件 README.txt
与任一父提交中的 README.txt
相同,那么显示与另一个父提交的差异可能没有意义犯罪。但是,如果您没有预料到这一点,那可能会令人大吃一惊。打败它的唯一方法是使用 -m
.
1这对 git diff-tree
、git diff-files
和 git diff --raw
有一定意义,因为该部分本身描述的是 将列出的文件,并且将不会列出与至少一个父项匹配的文件。但是,如果您没有记住这个小事实,而只是在文档中搜索紧接的下两个部分("generating patches with -p
" 和 "combined diff format"),关键句可能甚至不会出现在您的 [=54] 中=].我仍然记得被这件事烧伤了,不管多少年过去了。 :-)
在 git 获取之后,我想查看从上游引入的代码更改。
我可以使用 git log -p ..@{u}
,但是输出将不包括拉取请求的合并 commits/merges 的差异。
有没有办法将这些包含在输出中,从而生成自我上次拉取以来发生的更改的全面历史记录?
谢谢
当使用 git log -p
将提交视为补丁时,正如您注意到的那样,它会在需要区分它们时跳过合并提交。也就是说,它像往常一样向您显示日志 message,但完全没有区别。
您可以通过三个选项来控制它:
-c
(一个连字符和一个小写 C):显示一种形式的组合 diff--cc
(两个连字符和两个小写字母 C):显示组合 diff 的另一种形式
-m
:"split" 每次合并,显示针对 每个 父级的补丁。在这种情况下,您将看到两次日志消息。
a separate section of the git diff
documentation (and several others that share this file). For some reason, though,1 a key fact is hidden in this earlier section:
Note that combined diff lists only files which were modified from all parents.
通常这实际上是您想要的:如果合并保持文件 README.txt
与任一父提交中的 README.txt
相同,那么显示与另一个父提交的差异可能没有意义犯罪。但是,如果您没有预料到这一点,那可能会令人大吃一惊。打败它的唯一方法是使用 -m
.
1这对 git diff-tree
、git diff-files
和 git diff --raw
有一定意义,因为该部分本身描述的是 将列出的文件,并且将不会列出与至少一个父项匹配的文件。但是,如果您没有记住这个小事实,而只是在文档中搜索紧接的下两个部分("generating patches with -p
" 和 "combined diff format"),关键句可能甚至不会出现在您的 [=54] 中=].我仍然记得被这件事烧伤了,不管多少年过去了。 :-)