git - 简化 git flow 工作流程

标签 git release-management git-flow

在尝试简化时: enter image description here

同时满足要求:

  1. 运行并行母版
  2. 运行功能分支,可能/可能不会发布
  3. 处理热修复
  4. 处理漏洞修复

查看A successful Git branching model

只要我们在每次发布后标记 master 分支,我们就可以取消发布分支吗?

我们也可以取消 develop 分支吗?

发布分支可以在新冲刺开始时从 master 分支出来,开发人员可以从中创建他们的功能分支。如果一个 hotfix merge 到 master(当前版本)发生在一个 sprint 的中间,那么这个 hotfix 也可以同时 merge 到当前版本分支作为 feature-branch-hotfix-

feature/develop分支的代码应该部署到DEV环境

特性分支本身根本不应该被部署。

更喜欢我的策略,其中从 release-* 到 master 的 merge 请求通过 webhook 启动 jenkins 管道构建,这将自动 merge release-* 到 master,从 master 构建并标记 merge 提交。

最佳答案

如果您想要更简单(更灵活)的工作流程,请考虑 gitworkflow .

/image/wWLrJ.png

您不会将 dev merge 到 master:您只会 merge feature 分支。

merge feature 分支到:

  • dev 用于集成测试
  • master 准备下一个版本
  • 另一个 release 分支,如果您同时维护/准备多个版本

detail that model further hereillustrate it here

重要的一点:dev 分支(用于将 feature 分支集成在一起)是transient:它会为每个新版本创建/销毁(而不是一个固定的永恒 dev 分支不时 merge 到 master )。

您可以根据需要重新创建尽可能多的集成分支来一起测试功能。
然后,准备就绪后,您只需将正确的 feature 分支 merge 到 master(或任何其他 release 分支),删除您的 dev 分支,并为下一个版本重新创建它。

关于git - 简化 git flow 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454059/

相关文章:

github - Git流命令错误: 'flow' is not a git command

git - 在哪里放置用户项目特定的 Gradle 属性?

ios - 如何在具有多个分支的团队环境中处理核心数据模型版本控制

java - 使用 Maven 将版本文件放入 EAR 或 WAR

android - repo 同步挂起

maven - 我如何处理 Maven 中的两个几乎相同的发布分支

release-management - 您如何以politest方式更新繁忙的网站?

git - 为什么 'git remote show <name>'显示remote HEAD不明确,可能是以下之一

Git diff 错误地解释了我的更改

oracle - 自动回滚脚本 oracle