如何使用git rebase结束时已解决的冲突轻松地对分支进行rebase?
例如,我在一个功能分支上,而在master分支中有2个提交用于基准。
第一次提交会产生冲突,但是如果将重新提交将两个提交合并到一起,那么第二次提交之后就不会发生冲突。
那么,如何将其作为一个整体进行基础调整,而不是按1进行基础调整并解决两次冲突呢?
我认为必须在某个地方回答,但我找不到任何东西,因为所有类似的问题标题都含糊不清。
答案 0 :(得分:2)
最好的方法是先压缩两个提交(通过使用 interactive 重新设置基准),然后再将其重新建立在主节点上。
通过交互式变基压缩最后2次提交:
git rebase -i head~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使您能够解决冲突。您的基本问题归结为“我如何才能应用包含冲突的补丁而不造成冲突”,您显然不能这样做。通过先压缩提交,您无需再应用有冲突的提交。