git merge或rebase,feature branch to another running feature branch

时间:2015-10-12 12:06:05

标签: git version-control merge

我有以下分支

  • 主人
  • 发布
  • dev的
    • feature-1
    • feature-2
  • 长时特征

所有功能分支都属于dev分支,并在完成后合并到dev分支。 我按照以下方式做到了

git checkout feature-1
git rebase dev
(remove all conflict, if exist and then commit)
git checkout dev
git rebase feature-1
git push origin dev

以上流程很好,管理得当,一切都很好看。但我有另一个分支长期功能。它将在几个月后发布,我需要通过dev分支更新它(在每个新功能完成后)。所以同样适用于长时间功能分支但没有重新设置为dev。

git checkout **long-time-feature**
git rebase dev
(remove all conflict, if exist and then commit and push it)

但是现在我下次将它重新设置为dev,然后所有冲突再次重复,并且在推动它时会增加许多提交。每次都一次又一次地消除冲突太难了。 :(所以任何最好的方式来更新我的长期功能分支与开发。

先谢谢

1 个答案:

答案 0 :(得分:0)

没有奇迹,长寿命的分支注定会导致合并冲突。您可以尝试通过以下选项之一来尽量减少其损害:

合并而不是rebase

这样,您可以在每次合并时解决一次冲突,并保留long living branch的原始历史记录

缺点:历史不再那么线性;如果决定撤销这样的

,则更难以恢复开发功能

壁球长生活分支历史

你有必要为长期生活分支的后续提交解决相同的冲突。您可以通过将历史记录为更大的,最好是一次提交来改进这一点。

缺点是历史较少。