Multiple development branches with git-flow
我目前正在研究 git-flow,并试图弄清楚如何将它用于我参与的项目。
我看过各种 git-flow 教程,我对 git 相当熟悉。因此,我不需要任何关于 git 的提示,而是直接在 git-flow 的工作流程上。
情况如下:
当我发布一个版本(我们称之为 1.0)时,这个 get 是 develop 的分支,这很好。假设现在我开始研究 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 get 并且随后请求更改为 1.0.x。
这对 git flow 有可能吗? IE。一旦新版本的工作已经开始或什至完成,是否基于早期版本发布?
更多关于"git-flow 改进"的信息:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
关键是从上次发布的那一点开始功能。您是否有 1 个或多个已发布的受支持版本应该不是问题。
更新:
我已经重写了 - 以博客形式:
http://dymitruk.com/blog/2012/02/05/branch-per-feature/
Is this possible at all with git flow?
使用 git-flow 作为一系列最佳实践而不是硬性规则,一切皆有可能。只需从您的
我相信如果您想同时支持两个版本的应用程序,最好为此创建两个不同的存储库。
我意识到这是一个老问题,但我只是找到了一种相当简单的方法来处理它。
在我的开发服务器上,我基本上有两个工作副本,一个用于 v1.0,另一个用于 v2.0。
然后我为 v2.0 创建一个单独的"开发"分支,当我在 2.0 环境中运行"git flow init"时,我将其用作我的"下一个版本"分支。
我相信你可以对 master 分支做同样的事情,但对我来说这已经足够了。