当以后的提交解决了冲突时,如何在重新设置基准期间避免冲突?

时间:2018-10-31 16:33:29

标签: git rebase tree-conflict

如何使用git rebase结束时已解决的冲突轻松地对分支进行rebase?

例如,我在一个功能分支上,而在master分支中有2个提交用于基准。
第一次提交会产生冲突,但是如果将重新提交将两个提交合并到一起,那么第二次提交之后就不会发生冲突。
那么,如何将其作为一个整体进行基础调整,而不是按1进行基础调整并解决两次冲突呢?

我认为必须在某个地方回答,但我找不到任何东西,因为所有类似的问题标题都含糊不清。

2 个答案:

答案 0 :(得分:2)

最好的方法是先压缩两个提交(通过使用 interactive 重新设置基准),然后再将其重新建立在主节点上。

  1. 通过交互式变基压缩最后2次提交:

    git rebase -i head~2
    

    为第二次提交选择壁球(或修正)

  2. 然后基于master

    git rebase master
    

答案 1 :(得分:1)

您应该先在{em> {em> {em} 之前将squash the commits改成master。通过交互式重新定位到最近的共同祖先来做到这一点:

git rebase -i $(git merge-base master HEAD)

这样,合并的提交(当表示为补丁时)可以干净地应用于master

git rebase master

您尝试向master提交的原始第一个提交会发生冲突,简单明了。一旦完成,您必须能够检出该“状态”,因此Git使您能够解决冲突。您的基本问题归结为“我如何才能应用包含冲突的补丁而不造成冲突”,您显然不能这样做。通过先压缩提交,您无需再应用有冲突的提交。