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

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

我有以下场景:

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

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

这很好用,除非我们需要修补程序。

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

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

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

有没有可以解决这个问题的 git 工作流程?

解决方法

在 git flow 中,功能分支应该从开发分支开始。

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

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

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

发布完成后,您可以关闭主分支的发布分支,在此期间开发可以发展并获得错误修复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?