如何显示合并提交中所做更改的差异?

时间:2013-10-04 06:13:03

标签: git

当我写了一堆代码时,我没有意识到我正处于合并的中间。现在git log -p不会向我显示此更改的差异(自动提交为合并提交)。

如何让它显示在我的日志差异历史记录中?

2 个答案:

答案 0 :(得分:7)

Git没有向您展示与-p合并的补丁,这有点让人失望。部分原因是由-p生成的补丁是一个统一的差异,它是从一个基础和一个目标修订创建的。合并有两个基础,因此统一的差异并不能代表需要做出的改变。

所以有两种方法可以得到你想要的东西。 git log -p -c将在合并提交中显示N个差异,其中N是合并父级的数量。或者,您可以使用git log -p --cc并查看更加紧凑的差异形式。它看起来很像统一差异,但可以处理合并有多个父项的事实。 FWIW,--cc代表"紧凑组合"。如果为有问题的提交运行git show SHA1,您会看到紧凑的组合输出。

还有一个小注意事项:如果在合并提交中没有进行编辑,那么您将不会在git log -p --cc输出中看到差异。此外,默认情况下,当前无法进行差异显示合并提交。如果您需要简短且令人难忘的东西,最好的办法是使用别名。

答案 1 :(得分:0)

您需要重置为合并提交,并重做它,存储您想要申请以后提交的内容。

您可以在以下位置查看更多信息:

这涉及git reset merge_commit_SHA1,仅添加属于合并的文件,并存储其余文件。

  • Change a deep merge”:它描述了合并提交不是最新的情况,这意味着你需要重新定义自合并提交以来完成的其他提交:

    git rebase -p --onto $(git rev-parse nonce) HEAD^ $maste