如何落地Git 分支和运行环境规范

127 阅读2分钟

研发过程中Git 分支和运行环境的管理

有了上面分支和环境规范(juejin.cn/post/731620…

  • 分支命名规则

  • 分支和环境对应关系

  • 研发角色的权限

  • 研发过程中的权限控制

分支命名规则

分支名称规则
主分支master
开发分支dev_base{base_version}_{ featrure1}base_version:从哪个 master 版本创建的。feature: 表示由一个工程师负责的功能。
开发联调分支dev_common
版本分支dev_{online_version}online_version:产品版本号。

环境与分支的关系

某个环境只能部署相应的代码分支:

环境分支
devdev_common
testdev_{online_version}
productmaster3

研发角色的权限

角色分支权限环境权限
开发者1. 创建 feature 分支
  1. feature 分支的 commit 权限

  2. 自己创建的 feature 分支合并到 dev_common 分支。

  3. 自己创建的 feature 分支合并到dev_{online_version} 分支。 | 1. 把 dev_common 分支发布到 dev 环境。 | | 研发经理 | 1. 创建项目仓库。

  4. 创建 dev_common 分支。

  5. 创建 dev_{online_version}分支。

  6. 创建 feature 分支

  7. feature 分支的 commit 权限

  8. 所有 feature 分支合并到 dev_common 分支。

  9. 所有 feature 分支合并到dev_{online_version} 分支。

  10. dev_{online_version} 合并到 master 分支

  11. master 分支打 tag | 1. dev_common 分支发布到 dev 环境。

  12. dev_{online_version}分支 发布到 test 环境。

  13. master 分支 发布到 produce 环境 | | 测试 | 无 | 1. dev_{online_version}分支 发布到 test 环境。 |

下面根据研发流程的阶段给大家梳理每个阶段的控制点。

研发过程中的权限控制

每个研发阶段都有相应的控制

开发阶段

开发经理确认需求后,创建 dev_{online_version} 分支。 开发经理负责分配任务给开发人员,开发人员确认后拉取自己的 feature 分支。开发人员和测试经理都有权限把任何 feature 分支合并到 dev_common 分支。但测试人员没这个权限。

开发人员,测试经理,测试人员都有权限把dev_common分支代码部署在 dev 环境。

测试阶段

开发调试结束后,研发经理负责把 feature 分支合并到 dev_{online_version} 分支 ,然后把dev_{online_version} 分支部署在 test 环境。开发人员没有这个权限,同时测试人员有把dev_{online_version} 分支部署在 test 环境的权限。

发布阶段

测试结束后,研发经理把 dev_{online_version} 分支合并到 master 分支,然后把 master 分支发布到 product 环境。发布成功后,给 master 分支打上 tag。