【问题标题】:git merge or rebase, feature branch to another running feature branchgit 合并或变基,功能分支到另一个正在运行的功能分支
【发布时间】:2015-10-12 12:06:05
【问题描述】:

我有以下分支

  • 主人
  • 发布
  • 开发
    • 功能 1
    • 功能 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

上述过程很好,历史管理得当,一切正常。但我还有另一个分支long-time-feature。它将在一个月后发布,我需要通过 dev 分支更新它(在每个新功能完成后)。所以上面的事情同样适用于 long-time-feature 分支而无需重新定位到开发。

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

但是现在下一次我将重新设置它的基础,然后所有冲突再次重复,并且在推送它时会增加大量提交。一次又一次地消除冲突太难了。 :( 所以任何更新我的 long-time-feature 分支与 dev 的好方法。

提前致谢

【问题讨论】:

    标签: git version-control merge


    【解决方案1】:

    没有奇迹,长寿的分支注定会引起合并冲突。您可能会尝试通过以下选项之一尽量减少它们的损坏:

    合并而不是变基

    这样你每次合并解决一次冲突并保留长期存在的分支的原始历史

    缺点:历史不再那么线性了;如果决定撤销此类开发功能,则更难恢复开发功能

    南瓜长寿分支历史

    您可能必须在 rebase 时为后续提交的长寿分支解决相同的冲突。您可以通过将历史压缩成更大的,最好是一个提交来改进这一点。

    缺点是历史较少。

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 2013-12-05
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2020-12-15
      • 2013-01-31
      相关资源
      最近更新 更多