我目前正在寻找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来说有可能吗?即一旦新版本的工作开始甚至完成,基于早期版本发布版本?
答案 0 :(得分:5)
更多关于“git-flow改进”:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
关键是从上次发布的角度开始功能。是否有一个或多个已发布的受支持版本应该不是问题。
更新:
我重写了它 - 以博客形式:
答案 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)
我相信如果你想同时支持两个版本的应用程序,最好为它创建两个不同的存储库。