git log --remerge-diff

--remerge-diff 选项在 git loggit show 命令中都存在。它用更容易阅读的方式显示一个合并结点相对于两个 parent 的变化。

下图是一个例子(来源在这里)。没用这个选项的时候会显示三路的差异,有三种颜色。只看绿色部分就是最终解决了冲突后的代码,但是看红色还得看红色是来自哪一个 parent,不够方便。

用了这个选项之后修改被整合在了不同的代码段中,只使用一栏标志(就不用再从左边去寻找代码来自哪个 parent,只需要看它属于哪一个代码块)。将红色的部分视为注释,只看正常颜色的字体,就可以得知冲突解决后的结果是:

        if (dwim_ref(cb.buf.buf, cb.buf.len, &oid, &ref, 1) == 1 &&
            /* oid is a commit? match without further lookup */

通过三个区块仍然可以得到两个 parent 和自动合并后的结果。之前是无法得到自动合并后的结果的信息的。