特性分支和通用代码的Git分支策略

10

我一直在使用这里提供的git分支策略http://nvie.com/posts/a-successful-git-branching-model/

到目前为止,它一直对我非常有效。

我经常发现自己遇到一个问题,在feature分支上工作时,我最终需要实现与整个项目相关的代码。处理这些情况的最佳方法是什么?

a)切换到主开发分支,提交更改并将feature分支重新基于develop分支。

b)在feature分支上进行更改,然后合并回develop分支,以便其他feature分支可以访问该代码。

c)为公共代码创建一个新分支,并将其合并到Develop以及需要使用它的任何功能分支中。

这里有另一个问题。您多久将feature分支合并回主要开发分支?您是否等待功能完全完成后再合并并删除它?还是在其生命周期中多次合并回develop分支,只要它稳定就合并?

1个回答

4

我喜欢选项a/,但实际上,在不断提交代码之后,你才意识到其中一些代码实际上是常见的代码。

当这种情况发生在一个feature分支上(通常还没有推送并共享),我更喜欢做一个交互式变基,将常见代码的提交重新排序,然后将master分支合并到feature分支的前n个提交(快进合并)。
从那里开始,我可以将任何其他需要受益于这些新的共同特性的分支变基到master上。

仅在以下情况下将功能分支合并回来才有意义:如果该功能分支的状态必须对他人可见(因为您想推送master,同时保持feature分支私有)
如果开发的其余部分:

  • 可以继续进行而不需要使用feature分支中的任何部分
  • 可以继续进行而无需修改某些公共文件集(这将意味着在masterfeature分支之间等待越长时间,合并就会变得更加困难)

,那么我更喜欢稍后合并feature分支。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接