使用 git 工作流程和容器处理修补程序分支

Working with hotfix branch using git workflow and containers

我有以下场景:

我们正在使用功能分支工作流和容器。

团队 A 的开发人员创建分支(来自 master/main)来处理功能,一旦完成,代码将与发布分支合并。在发布分支上提交启动管道构建,运行 测试并将容器部署到暂存环境。用户批准后,容器被“提升”到生产环境,开发人员将发布分支与主分支合并,创建标签并完成工作。

这工作正常,除非我们需要修补程序。

当团队 A 的代码处于临时环境中时,团队 B 开始在“修补程序”分支上工作,他们的提交也启动了一个管道,该管道 运行 构建、测试、创建容器,并部署到一个特殊的暂存环境,我们称之为“hotfix-stage”。此时,我们有同一个项目的2个容器,正在验证不同的代码。

如果团队A的容器被批准,它被部署到生产,但如果团队B的容器被批准,它也被部署到生产。问题是团队 A 的容器在没有修补程序的情况下将投入生产,而团队 B 的容器没有团队 A 的功能。

A 队和 B 队是不同的公司,每个公司都有自己的 SLA。他们不想将“hotfix”分支与“feature”分支(或“release”分支)合并。

是否有 git 工作流程可以解决这个问题?

在 git 中,流程功能分支应从开发分支开始。

当需要发布时,会从开发中创建发布分支。 如果在发布过程中发现错误,则从发布分支创建修复分支,解决错误后,必须将修复分支合并到发布分支和开发分支(可以同时发展)。您可以对在质量检查期间发现的所有错误执行此操作。

如果在以前的版本中发现错误,则必须从 main 启动一个修补程序分支并关闭到 develop。如果此时有发布分支,您可以选择是否也发布热修复。

当事情看起来稳定时,在发布分支上创建一个标签,这就是发布。您还可以使用发布候选标签,然后标记最终发布候选。

发布完成后,您可以将发布分支关闭到 main 中,在此期间开发可以发展并接收错误修复