如何处理git中的主版本分支

如何处理git中的主版本分支,git,git-branch,git-flow,Git,Git Branch,Git Flow,我正在将一个开发项目从SVN切换到git,这是我们第一次使用任何类型的分支。我的大脑围绕着git流方法(基于),但我一直在构思如何做一件事 当我们做一个主要的版本升级(比如从2到3)时,我们仍然支持版本2至少一年,包括错误修复和偶尔的新特性。我会为版本2创建一个新的永久分支来应用这些更改吗?如果我们开始为版本3开发,并决定在版本2中添加一个新的版本3功能,这可能吗?您会怎么做?我是否必须将提交从develop分支挑选到version-2分支,或者我是否可以进行实际的合并 (我正在为我的Git客户

我正在将一个开发项目从SVN切换到git,这是我们第一次使用任何类型的分支。我的大脑围绕着git流方法(基于),但我一直在构思如何做一件事

当我们做一个主要的版本升级(比如从2到3)时,我们仍然支持版本2至少一年,包括错误修复和偶尔的新特性。我会为版本2创建一个新的永久分支来应用这些更改吗?如果我们开始为版本3开发,并决定在版本2中添加一个新的版本3功能,这可能吗?您会怎么做?我是否必须将提交从develop分支挑选到version-2分支,或者我是否可以进行实际的合并


(我正在为我的Git客户端使用Tower)

是的,您将有一个支持分支和一个开发分支

支持分支上的任何错误修复也很可能与开发分支相关,因此支持分支应该定期合并到开发分支中。请注意,开发版本的差异越大,您遇到的合并冲突就越多


另一种情况是,开发中与支持相关的特性应该是例外,而不是规则(否则您首先应该在支持中开发它),因此这些提交应该被仔细挑选。不应该将开发分支合并到支持分支中,因为您很可能有许多未经测试、未完成或实验性的功能,您不想将这些功能作为支持补丁发布。

一年后,在这里查看我的答案。我们最终创建了“支持”、“开发”和“公共”分支。这使我们能够在开发分支中构建特性,同时在公共分支中进行重构,然后将公共分支合并到支持和开发中(并避免盲目挑选)。我们通常只需要修复共同的bug,因为这种方法使我们的代码库不会出现几乎同样多的分歧。