将软件的分支移植到新版本

时间:2014-11-06 14:52:22

标签: git version-control

我有一个非常大的分支,一个非常庞大的软件坐在git存储库中。由于我们的版本和上游版本有很大分歧,因此决定将其移植到当前版本。

那么,最好的方法是什么?有没有办法用一个标志来标记一个特定的git提交,通知已经移植了?或者我应该尝试一些复杂的变基计划?

我主要是从物流的角度提问,因为我肯定会将一些功能推向上游(因此对当前的头部进行了重新设计),但大多数代码需要更新并保存在我们的分支中

1 个答案:

答案 0 :(得分:4)

听起来你前面有一个棘手的合并!我建议你看看git imerge,这有助于解决大型合并问题,将它们分解成更小的部分。引用项目页面:

  

git-imerge有两个主要设计目标:

     
      
  • 通过查找和展示合并冲突,将合并冲突解决的难度减少到不可避免的最低限度   最小的冲突:每个分支的一次提交引入的更改之间的冲突。
  •   
  • 允许合并在正在进行时保存,测试,中断,发布和协作。
  •   

如果您按照git-imerge进程操作,则会向您提供一系列相对较小的合并冲突,您可以逐个修复。我鼓励您在每个解决步骤之后运行任何自动化测试(或至少编译您的项目),以降低在出现错误时引入错误的风险。

您是否希望此进程的最终结果是合并提交,或者您的提交到上游分支的rebase由您决定,git imerge允许您选择这些选项中的任何一个(以及其他一些选项)作为一个清理步骤,一旦你完成了实际组合变化的困难部分。