8

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

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

4

2 回答 2

11

Git 没有显示用于合并的补丁,这有点令人失望-p。部分原因是由 产生的补丁-p是一个统一的差异,它是从一个基础和一个目标修订创建的。合并有两个基础,因此统一的差异并不代表需要进行的更改。

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

还有一点小注意:如果在合并提交中没有进行任何编辑,那么您将不会在git log -p --cc输出中看到差异。此外,目前还没有办法让差异默认显示合并提交。如果您需要简短且令人难忘的内容,最好使用别名。

于 2013-10-04T08:20:48.990 回答
0

您需要重置为您的合并提交,然后重做它,隐藏您想要申请的内容以供以后提交。

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

这涉及 a git reset merge_commit_SHA1,仅添加属于合并一部分的文件,并隐藏其余文件。

  • 更改深度合并”:它描述了合并提交不是最新的情况,这意味着您需要重新设置自合并提交以来完成的其他提交:

    git rebase -p --onto $(git rev-parse nonce) HEAD^ $maste
    
于 2013-10-04T06:58:04.807 回答