2014-09-10 84 views
0

运行git log --first-parent -p向我显示了我感兴趣的提交,但我希望看到合并提交以及非合并提交的补丁(-p仅显示用于非合并提交的补丁)。查看补丁合并提交

有没有办法看到补丁提交合并?

回答

1

有一堆选项可以控制这个。

差异合并提交的基本问题是,有多个父母(根据定义,因为它是一个合并)。什么git show(其中,我知道,是不是git log,挂在了一会儿)默认情况下,做的是告诉你一个“组合差异”,这是在另一个不同的文档页面适当的描述,为git diff-tree

- ç

此标志改变合并提交的显示方式(这意味着,只有当该命令被给定的一个树肥胖型,或--stdin它是有用的)。它会同时显示每个父级与合并结果的差异,而不是显示父级和结果之间的pairwise差异(这是-m选项的作用)。此外,它只列出所有父母修改过的文件。

--CC

此标志更改合并提交显示补丁的方式,以类似的方式向-c选项。这意味着-c-p选项,并进一步压缩补丁输出,方法是省略父母内容只有两个变体的无趣群件,并且合并结果不加修改地挑选其中的一个。当所有的hunks都不感兴趣时​​,就像在任何其他“空比较”情况下一样,提交本身和提交日志消息也不会显示。

我们现在准备跳所有的出路git log,它实现了所有三个选项(-c--cc,并且-m;注意--cc使用两个-字符,而其他人只使用一个)。添加其中的一个将为合并提交生成一个补丁。具体来说,你可能想要-m。这在实际上documentation描述(靠近网页的结尾):

git log -p -m --first-parent ::

显示历史,包括改变diff文件,但只能从 ``主分支“的角度来看,跳过来自合并的 分支的提交,并显示合并引入的更改的完全差异。 只有遵循严格的合并所有 主题分支时保留在单个集成分支上的策略时才有意义。

+0

正是我以后的样子!谢谢! – zoran119 2014-09-11 00:25:11