Git:如何合并一个小但很老的分支?
我们正在从SVN迁移,并且合并了一些分支。 为了大规模简化,我们有一个分支B,它在很久以前就被分叉了,并且有一点发展,比方说,修改了8个文件,数以百计。 同时,师父发生了巨大的变化:
A
|
X---(a few changes)--- B
|
|(hundreds of changes)
|
HEAD/master
如果我从分支中执行“git merge master”,会显示许多合并冲突,因为B和HEAD现在有很大不同。 但是,这似乎(天真地说,对我来说)是错误的:B距离后备箱不远,这只是一段很长的时间。
有没有办法利用这个事实? 我应该尝试先将B合并回X,然后再从那里加入HEAD? 什么是命令:
人们在这些情况下使用了另一种方法吗?
(很可能我在前面已经说过一些非常愚蠢和不合理的东西 - 随意指出它们:))
从B和主分离的位置创建一个新的分支“X”,然后将B合并到X中不会对您有所帮助。 这只是一个快速合并; 对于由合并B引起的矛盾,实际上并没有改变。 您唯一的选择是执行B到主控的合并并解决冲突。 冲突是他们的本质,他们无法“围绕”他们。
如果情况很糟糕,您可能需要手动重写HEAD或至少更新版本的修补程序。 这不仅可以帮助处理冲突,还可以为您提供一个您可能会更喜欢的历史记录,同时还可以帮助您避免不属于合并冲突的错误。 由于更改下的代码更改,存在很多潜在的问题,并不是所有代码都会作为合并冲突出现。
也就是说,如果你确实想要以合并的方式来完成它,你将不得不以这种或那种方式处理这些冲突。 你可以通过渐进式的方式减少自己的痛苦,并以较小的增量及时向前迈进。 我可以通过逐步重新设定分支来做到这一点:
git rebase version-2 old-branch
# deal with conflicts if they happen
git rebase version-3 old-branch
# and so on...
# until old-branch is based on a recent version
git checkout master
git merge old-branch
这将有效地让您在每一步中处理较小的更改,而不是一次处理它。
链接地址: http://www.djcxy.com/p/10315.html