我使用git flow,在分支制作功能分支时,我有一个关于最佳实践的问题。如果我有一个开发主分支和两个特征分支,一个在时间t2分支而另一个在t3分支,如果两个特征分支都没有准备好合并并且需要从开发分支或其他特征需要新的东西应该怎么做科?有没有办法更新" base"特征1从t2发展到新的"基地"在t3发展的时候发展了什么新东西?类似于功能分支2,当它还没有准备好进行合并时,可以在合并之前使用develop分支中的新更改进行更新吗?
feature 1 (branch)
/
/
----- develop ----/-----\---------------------------
\
\
feature 2 (branch)
t1 t2 t3 t4
分支机构能否以某种方式向前推进#34;那么开发分支的新变化会包含在功能分支中,还是我们必须首先合并?
答案 0 :(得分:5)
我想补充现有的两个答案:您可以改为更新develop
分支上的每个feature
分支,而不是在feature
分支中合并develop
。 :
git checkout feature
git rebase develop
优点:
feature
合并到develop
时可能会造成混淆。 feature
分支中的提交(例如,如果要在提交消息中修复拼写错误),而无需更改develop
分支中已有的提交。如果您将develop
合并到feature
,则无法再进行此操作,因为分支将会分歧,您无法再将feature
合并到develop
。所以这种方法稍微多一些工作(rebase而不是merge),但也带来一些(次要)优势。
答案 1 :(得分:2)
虽然您可以使用rebase向前移动它们,但我会将开发合并到功能分支中。在处理功能分支时,我会定期将开发合并到其中,以防止在我最终将功能分支合并回开发时出现巨大的合并冲突。
答案 2 :(得分:1)
您可以在develop
中合并所需的feature
分支点。
如果您只想要某些特定提交,可以使用git cherry-pick
将这些提交的更改应用到您的分支。