[英]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.