使用git-flow的多个开发分支

时间:2011-12-20 16:59:23

标签: git version-control git-flow branching-strategy

我目前正在寻找git-flow,并试图找出如何将它用于我参与的项目。

我看了各种git-flow教程,我对git非常熟悉。因此,我不需要任何关于git的技巧,而是直接使用git-flow的工作流程。

情况如下:

当我重新发布一个版本(让我们称之为1.0)时,这就得到了开发的分支,这很好。现在让我说我开始研究2.0,添加新功能。当然,一旦完成,我想将它们合并到开发中。现在1.0上的修复很好,所以我们也说我生成了几个版本1.0.1,1.0.2等。所有这些也将更新开发分支,这也很好。到目前为止很麻烦,我可以独立开发2.0和1.0.x的修补程序的功能。

但是,有人说有人要求1.1版本的新功能。现在我有一个问题。如果我创建一个功能分支,这将基于开发分支,它可能已经包含2.0内容,我可能不希望在1.1版本中。

有一种简单的方法,可以独立处理这些2.0和1.1的变化吗?

我已经看到了几种可能性:

  • 在开发时的最后一个发布位置创建一个新分支。将开发重新定位到此位置并重命名另一个开发分支。但是,此分支不包含1.0.1等的任何修补程序。

  • 在2.0完成之前,不要合并2.0的功能。然而,在最后一刻,我将不得不将大量未合并的更改保持打开状态。如果发布2.0版本并且之后要求更改为1.0.x,这也无济于事。

这对git flow来说有可能吗?即一旦新版本的工作开始甚至完成,基于早期版本发布版本?

4 个答案:

答案 0 :(得分:5)

更多关于“git-flow改进”:

https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

关键是从上次发布的角度开始功能。是否有一个或多个已发布的受支持版本应该不是问题。

更新:

我重写了它 - 以博客形式:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

答案 1 :(得分:3)

  

这对git flow来说是否可行?

使用git-flow作为一系列最佳实践而不是硬性规则是可能的。只需从1.0发布分支而不是develop分支中打开您的功能分支。

答案 2 :(得分:0)

我意识到这是一个老问题,但我发现了一个相当简单的方法来处理它。

在我的开发服务器上,我基本上有两个工作副本,一个用于v1.0,另一个用于v2.0。

然后我创建一个单独的" develop"分支为v2.0,当我运行" git flow init"在2.0环境中,我使用它作为我的"下一个版本"分支。

我相信你可以为主分支做同样的事情,但就我的目的而言,这已经足够了。

答案 3 :(得分:0)

我相信如果你想同时支持两个版本的应用程序,最好为它创建两个不同的存储库。