繁体   English   中英

合并分支并修复冲突

[英]Merge branches and Fix conflicts

我有两个分支,我想将它们合并到一起,但问题是其中一个分支在几个月前停止接收另一个分支的任何更新。 因此,当我尝试合并它们时,会遇到大量复杂的冲突。

有什么解决方案可以安全地合并它们吗?

注意:我正在使用 Android Studio

没有办法解决这个......冲突发生是因为代码朝着不同的方向发展,所以他们必须处理。 您可以一次解决一大堆冲突的一种方法是将较长的分支(因为它们发散)重新定位到较短分支的每个提交上。 说....你有这两个分支

A <- B <- C <- D <- E <- (branch1)
     ^
      \- F <- G <- (branch2)

你可以运行git switch branch2; git rebase C git switch branch2; git rebase C 您可能会遇到较小的冲突,并以这样的方式结束:

A <- B <- C <- D <- E <- (branch1)
          ^
           \- F' <- G' <- (branch2)

然后git rebase D ,最后是这样的:

A <- B <- C <- D <- E <- (branch1)
               ^
                \- F'' <- G'' <- (branch2)

最后git rebase branch1并以这个结束:

A <- B <- C <- D <- E <- (branch1)
                    ^
                     \- F''' <- G''' <- (branch2)

但这并不意味着您将避免冲突.....您实际上可能会在此过程中遇到更多冲突,但理论上它们应该更小(实际上可能并非如此,但唉,事先无法知道)。

另一种可行的方法是合并但不是提示,而是中途或分段......然后冲突应该更小......最后,当你最终合并真正的提示时拥有最终所需的树你真正想要的分支,你可以运行一个git commit-tree命令来创建一个“凭空”提交,它使用真正的 2 个分支作为父分支和你创建的所有合并的最终树,这样你就可以避免所有这些合并你在中间尝试过的(如果你想避免它们出现)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM