Git分支模型|合并主分支和发布分支

Git分支模型|合并主分支和发布分支,git,version-control,branching-and-merging,Git,Version Control,Branching And Merging,我们遵循一个基本的发布/主/功能分支模型,其中 主人是主线 每一个新的特征都是在一个新的特征分支上发展而来的,这个分支从master中雕刻出来并合并到master中,并且 在计划发布时,从master中分割出一个发布分支 在划分出发布分支之后,如果在QA/UAT测试期间或发布之后发现任何问题,我们将在发布分支本身上修复它。我们如何确保每一个这样的补丁也出现在master上?通常的建议是将发布分支合并到master中。这听起来不错,但如果发布分支上的修复程序不是绝对正确的(比如说由于时间限制引

我们遵循一个基本的发布/主/功能分支模型,其中

  • 主人是主线
  • 每一个新的特征都是在一个新的特征分支上发展而来的,这个分支从master中雕刻出来并合并到master中,并且
  • 在计划发布时,从master中分割出一个发布分支

在划分出发布分支之后,如果在QA/UAT测试期间或发布之后发现任何问题,我们将在发布分支本身上修复它。我们如何确保每一个这样的补丁也出现在master上?通常的建议是将发布分支合并到master中。这听起来不错,但如果发布分支上的修复程序不是绝对正确的(比如说由于时间限制引入了一个hack),并且master有相应的修复程序,我们将不希望该hack从发布分支合并到master中。关于如何解决这个问题有什么建议吗?

您应该基于发布创建一个新的分支,在其上合并master,调整修复,然后使用该混合分支向master发出请求。

您应该基于发布创建一个新分支,在其上合并master,调整修复,然后使用该混合分支向master发出请求。

您可以用不同的方法处理此问题。我将向您推荐一种分支模型/策略,用于我每天使用的最常见的开源项目

和你一样,主线是名为master的分支。Master包含下一个版本。Master是您的发布分支。如果您使用的是42.43版本。。。mater包含从42.43.0到42.43.*的版本。其中*是路径/修复数

现在。。。假设有一个新的版本要构建,带有中断性的更改或一些巨大的重构。现在是创建branch 42.43的时候了,如果您对branch 42.43或43.0稍作修改,可以升级到版本42.44

主人将是前者或后者。开发版本始终位于主分支中。旧的可维护版本保留在它们的分支中

如何进行主要的开发修复? 假设有版本

  • master(您正在准备3.0.0版)
  • 2.4(先前版本)
  • 1.7(旧版本)
如果您在1.7中发现一个bug,只需从那里开始一个分支。也许你会有标签1.7.42。在1.7分支中,您正在构建1.7.*版本。只是

  • 从1.7打开分支
  • 看一看最新的标签(我使用git descripe--tags获取帮助)
  • 修复次要版本
  • 标记新路径1.7。(+1)
当你完成时。。。只需将分支1.7合并到2.4中。标记新的2.4.(+1)。在主分支之前也要这样做

   -----*----* this is master
       /   /
 -----*----* this is 2.4
     /
----*-- this is 1.7

希望这有帮助

您可以用不同的方式处理此问题。我将向您推荐一种分支模型/策略,用于我每天使用的最常见的开源项目

和你一样,主线是名为master的分支。Master包含下一个版本。Master是您的发布分支。如果您使用的是42.43版本。。。mater包含从42.43.0到42.43.*的版本。其中*是路径/修复数

现在。。。假设有一个新的版本要构建,带有中断性的更改或一些巨大的重构。现在是创建branch 42.43的时候了,如果您对branch 42.43或43.0稍作修改,可以升级到版本42.44

主人将是前者或后者。开发版本始终位于主分支中。旧的可维护版本保留在它们的分支中

如何进行主要的开发修复? 假设有版本

  • master(您正在准备3.0.0版)
  • 2.4(先前版本)
  • 1.7(旧版本)
如果您在1.7中发现一个bug,只需从那里开始一个分支。也许你会有标签1.7.42。在1.7分支中,您正在构建1.7.*版本。只是

  • 从1.7打开分支
  • 看一看最新的标签(我使用git descripe--tags获取帮助)
  • 修复次要版本
  • 标记新路径1.7。(+1)
当你完成时。。。只需将分支1.7合并到2.4中。标记新的2.4.(+1)。在主分支之前也要这样做

   -----*----* this is master
       /   /
 -----*----* this is 2.4
     /
----*-- this is 1.7

希望这有帮助

我看不出问题所在。您可以从发布版创建一个修复分支,并将hack合并回发布版。完成。大师没有受到影响,将得到适当的修复。我看不出问题。您可以从发布版创建一个修复分支,并将hack合并回发布版。完成。Master不受影响,将得到正确的修复。