繁体   English   中英

Git分支模型工作流程-开发/主分支

[英]Git branching model workflow - develop/master branches

git分支模型具有一个工作流,其中有两个生命周期无限的分支: developmastermaster反映了生产就绪状态,使用最新交付的开发更改来 develop 状态

为了从developmaster我们经历了一个中间状态,即一个release branch ,该release branch支持新产品发布的准备 在完成这些准备工作(shell脚本或可能的手动更改)之后,我们将release分支合并到master中,对其进行标记并推入生产环境。

在这一点上, 仅进行更改,因为例如外部服务在生产中与过渡环境中具有不同的URL。

现在master领先于develop ,除非我将它合并回develop否则它将永远领先。

如果我(a) 这样做,那么我所有生产中仅在release分支中所做的更改将被合并回develop

如果我(b) 不这样做,那么我的母带将始终处于develop领先和落后地位,并且在分支出母版的修补程序的情况下,无论如何,我将最终在修复后将所有合并回develop

在确保我的开发分支保留生产变更的同时,使用此模型的最佳方法是什么?

实际上,这实际上是一个配置管理问题,而不是git问题。 这个问题不是git独有的,并且是所有版本控制系统的问题。 最佳实践是消除所有仅生产变更,或至少将其减少到最低限度。

这可以通过多种方式完成:

  • 将配置值放入数据库中。 这将一直有效,直到您由于不得不更改数据库来更改简单的配置而烦恼为止
  • 将配置放入文件中,并使用基于单个变量的if语句,该变量在生产中会发生变化。 例如:

    如果(生产)值=键
    else值= otherkey

    这也不是一件好事,因为现在您已经拥有未经测试的代码。

  • 将config放入环境变量中。 这工作得很好,但是最好确保您的部署过程实例化并填充它们。

  • 但是,如果您想获得最先进的技术,请将配置放入其自己的存储库中,并使用诸如puppet和Chef之类的自动化工具

暂无
暂无

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

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