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

Nik*_*ntz 0 git git-flow

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

                         feature 1 (branch)
                        /
                       /  
    ----- develop ----/-----\---------------------------
                             \
                              \
                              feature 2 (branch)
    t1              t2     t3                      t4
Run Code Online (Sandbox Code Playgroud)

分支机构可以以某种方式"向前移动",以便开发分支的新变化包含在功能分支中,还是我们必须先合并?

mor*_*rxa 5

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

git checkout feature
git rebase develop
Run Code Online (Sandbox Code Playgroud)

好处:

  1. 历史开始变得更加清晰,因为你避免合并提交诸如合并分支发展为特征,这可能会产生混淆,当你后来合并featuredevelop.
  2. 此外,您可以轻松更改feature分支中的提交(例如,如果要在提交消息中修复拼写错误),而无需更改develop分支中已有的提交.如果合并developfeature,这不再是可能的,因为分支随后将分歧,你不能再合并featuredevelop.

所以这种方法稍微多一些工作(rebase而不是merge),但也带来一些(次要)优势.