在两个版本之间创建新的次要版本

时间:2012-05-08 03:17:14

标签: git

我的工作正在从SVN切换到Git,我们正在重新评估我们如何使用分支和标签。

我们已经看到使用master作为始终稳定版本的模型,其中标记用于标识版本,而单独的开发分支用于不稳定的代码(http://nvie.com/posts/a-成功-混帐分支模型/).

我们喜欢这种开发方法,但它似乎不允许将修补程序应用于已发布的版本。

我们的产品安装了多个客户端服务器,每个服务器可能安装了不同的版本(由于我们无法控制的各种原因)。今天我们使用分支管理我们的版本,master用于开发。

例如,我们可能在不同版本上有3个客户端:

  • 客户A - v1.1
  • 客户B - v1.2
  • 客户C - v1.3

如果在v1.2中发现了一个严重错误,我们会在v1.2,v1.3和主分支中修复它并更新客户端B和C.我们不会为这些更改创建新分支,但从技术上讲它们将是版本v1.2.1和v1.3.1。

当我们需要能够在v1.3已经出门时创建v1.2.1时,我们无法看到如何切换到仅使用标签版本。

任何人都可以推荐一个比我们更适合我们的模型,而不是每个版本创建一个分支并在master中进行开发吗?

3 个答案:

答案 0 :(得分:1)

您可以根据旧标记创建新分支。如果你在v1.2中找到了一个关键的错误,那么只需从v1.2标签创建一个新的分支,修复那里的bug,将其标记为1.2.1然后将修复程序挑选到所有其他标签中(现在是分支机构),你正在维护。

即使您没有在master中执行稳定版本,这仍然适用。

答案 1 :(得分:0)

你可以使用一个稳定的主人,并且仍然可以进行每次发布分支(实际上我建议你这样做)。

如果您需要为较早版本的主要版本修补次要版本, 希望为每个主要版本分配一个分支,您不应该试图避免这种情况。< / p>

然而,这并不能阻止你将master声明为一个稳定的分支并让人们使用单独的分支进行开发,只有在确定它们稳定时才将这些分支合并为master。

保持掌握稳定有很多好处:

  • 这意味着创建新功能分支的任何人都有一个已知良好的分支基础。
  • 这使得发布很容易 - 你只需分离主人并将其发布给你。

您还可以使用标记来标记给定主要版本的初始分支点(以及任何次要版本也会从主要分支发布)。

答案 2 :(得分:0)

  

我们喜欢这种开发方法,但它似乎不允许将修补程序应用于已发布的版本。

您是否看到名为hotfixes的分支?当需要修补程序时,它会从master分支,其更改将返回master,以及develop

  

今天我们使用分支管理我们的版本,而master用于开发。

nvie.com分支模型不使用master进行开发,而是使用developmaster应该始终是该产品的最新发布版本。

  

如果在v1.2中发现了一个严重错误,我们会在v1.2,v1.3和主分支中修复它并更新客户端B和C.我们不会为这些更改创建新分支,但从技术上讲它们将是版本v1.2.1和v1.3.1。

找出master上发生错误的最早版本;从该标记创建hotfix分支,然后将修补程序反向移植到develop。实际上,您应该在hotfix中发生错误的每个版本化标记创建一个master分支,并将其反向移植到那些,然后最终返回到master的头部。