繁体   English   中英

Git分支模型| 合并master和release分支

[英]Git branching model | Merging master and release branch

我们遵循基本的发行版/主版/功能分支模型,其中

  • 大师是主线
  • 每个新功能都是在从master雕刻出来并合并到master中的新功能分支上开发的,并且
  • 在计划发行时,会从母版中划分出发行分支。

在确定发布分支之后,如果在QA / UAT测试期间或发布之后发现任何问题,我们会将其修复在发布分支本身上。 我们如何确保每个此类修订也都存在于master上? 常见的建议是将发布分支合并到master。 听起来不错,但如果Release分支的修复并非绝对正确(例如,由于时间限制而引入了hack)并且master具有适当的修复,我们将不希望将hack从版本中合并到master中科。 关于如何解决这个问题有什么建议吗?

您应该基于发行版创建一个新分支,在其上合并master,修改该修订,然后发出拉取请求以对该混合分支进行master。

您可以用不同的方式处理此问题。 我会建议您在我每天使用的最常见的开源项目中使用的分支模型/策略。

像您一样,主线是称为master的分支。 母版包含下一个版本。 Master是您的发行分支。 如果您使用的是42.43版本,则...包含从42.43.0到42.43。*的发行版。 *是路径/修复程序的数目。

现在,...假设要构建一个新版本,进行重大更改或进行一些巨大的重构。 现在是时候创建分支42.43了,如果您几乎没有修改或43.0,则可以升级到版本42.44。

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

如何放入主要的开发补丁?

假设有版本

  • 大师(您正在准备3.0.0版)
  • 2.4(旧版本)
  • 1.7(旧版本)

如果您发现1.7中的错误,只需从那里开始一个分支。 可能会有标记1.7.42。 在1.7分支中,您正在构建1.7。*版本。 只是...

  • 从1.7开始分支
  • 看看最新的标签(我使用git describe --tags寻求帮助)
  • 修复次要版本
  • 标记新路径1.7。(+ 1)

完成后,...只需将分支1.7合并到2.4。 标记新的2.4。(+ 1)。 并执行相同的操作,直到master分支为止。

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

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM