将功能分支更新到新基础的最佳做法是什么?

时间:2015-06-25 12:52:36

标签: git git-flow

我使用git flow,在分支制作功能分支时,我有一个关于最佳实践的问题。如果我有一个开发主分支和两个特征分支,一个在时间t2分支而另一个在t3分支,如果两个特征分支都没有准备好合并并且需要从开发分支或其他特征需要新的东西应该怎么做科?有没有办法更新" base"特征1从t2发展到新的"基地"在t3发展的时候发展了什么新东西?类似于功能分支2,当它还没有准备好进行合并时,可以在合并之前使用develop分支中的新更改进行更新吗?

                         feature 1 (branch)
                        /
                       /  
    ----- develop ----/-----\---------------------------
                             \
                              \
                              feature 2 (branch)
    t1              t2     t3                      t4

分支机构能否以某种方式向前推进#34;那么开发分支的新变化会包含在功能分支中,还是我们必须首先合并?

3 个答案:

答案 0 :(得分:5)

我想补充现有的两个答案:您可以改为更新develop分支上的每个feature分支,而不是在feature分支中合并develop。 :

git checkout feature
git rebase develop

优点:

  1. 历史变得更加清晰,因为您避免了合并提交,例如合并分支开发到功能,当您稍后将feature合并到develop时可能会造成混淆。
  2. 此外,您可以轻松更改feature分支中的提交(例如,如果要在提交消息中修复拼写错误),而无需更改develop分支中已有的提交。如果您将develop合并到feature,则无法再进行此操作,因为分支将会分歧,您无法再将feature合并到develop
  3. 所以这种方法稍微多一些工作(rebase而不是merge),但也带来一些(次要)优势。

答案 1 :(得分:2)

虽然您可以使用rebase向前移动它们,但我会将开发合并到功能分支中。在处理功能分支时,我会定期将开发合并到其中,以防止在我最终将功能分支合并回开发时出现巨大的合并冲突。

答案 2 :(得分:1)

您可以在develop中合并所需的feature分支点。

如果您只想要某些特定提交,可以使用git cherry-pick将这些提交的更改应用到您的分支。