22

我目前正在研究 git-flow,并试图弄清楚如何将它用于我参与的项目。

我看过各种 git-flow 教程,我对 git 相当熟悉。因此,我不需要任何关于 git 的提示,而是直接使用 git-flow 的工作流程。

情况如下:

当我发布一个版本(我们称之为 1.0)时,这个 get 是开发的分支,这很好。假设现在我开始研究 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 有可能吗?即,一旦新版本的工作已经开始甚至完成,就基于早期版本发布?

4

4 回答 4

5

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

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

关键是从最后一个版本开始功能。您是否有 1 个或多个已发布的受支持版本应该不是问题。

更新:

我已将其重写 - 以博客形式:

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

于 2011-12-20T20:07:56.860 回答
4

这对 git flow 有可能吗?

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

于 2011-12-20T19:56:15.197 回答
1

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

于 2018-01-16T09:04:50.020 回答
0

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

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

然后我为 v2.0 创建一个单独的“开发”分支,当我在 2.0 环境中运行“git flow init”时,我将其用作我的“下一个版本”分支。

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

于 2015-12-04T15:35:36.350 回答