当我写了一堆代码时,我没有意识到我正处于合并的中间。现在git log -p
不会向我显示此更改的差异(自动提交为合并提交)。
如何让它显示在我的日志差异历史记录中?
答案 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