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

时间:2013-11-04 15:55:07

标签: git config configuration-files configure

git branching model有一个工作流程,我们有两个分支,其中包含无限生命:developmaster其中master反映生产就绪状态develop 状态,其中包含最新的开发更改

要从develop转移到master,我们会通过一个中间状态release branch来支持准备新的生产版本。在完成这些准备工作(shell脚本或手动更改)之后,我们将发布分支合并到master中,对其进行标记并将其推送到生产环境。

此时仅限生产进行了更改,因为例如,外部服务在生产中的URL与在暂存环境中的URL不同。

现在master超前于develop,除非我将其合并回develop,否则将始终develop

如果我(a)这样做我在发布分支中所做的所有仅限生产更改将合并回到开发

如果我(b)不这样做,我的主人将永远领先于develop,如果是修补程序,那么分支主我将会结束修复后无论如何都要将全部合并到{{1}}。

使用此模型的最佳方法是什么,同时确保我的仅限生产更改远离我的开发分支?

1 个答案:

答案 0 :(得分:1)

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

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

  • 将配置值放入数据库中。这一直有效,直到您不得不进行数据库更改以更改简单配置
  • 将配置放在文件中,并根据生产中更改的单个变量使用if语句。例如:

    if(production)    value = key
    其他    value = otherkey

    这不是很好,因为现在你基本上有未经测试的代码。

  • 将配置放在环境变量中。这非常有效,但您最好确保您的部署过程实例化并填充它们。

  • 但如果您想获得最先进的技术,请将您的配置放入其自己的存储库并使用木偶和厨师等自动化工具