研发过程中Git 分支和运行环境的管理
有了上面分支和环境规范(juejin.cn/post/731620…
-
分支命名规则
-
分支和环境对应关系
-
研发角色的权限
-
研发过程中的权限控制
分支命名规则
| 分支 | 名称规则 |
|---|---|
| 主分支 | master |
| 开发分支 | dev_base{base_version}_{ featrure1}base_version:从哪个 master 版本创建的。feature: 表示由一个工程师负责的功能。 |
| 开发联调分支 | dev_common |
| 版本分支 | dev_{online_version}online_version:产品版本号。 |
环境与分支的关系
某个环境只能部署相应的代码分支:
| 环境 | 分支 |
|---|---|
| dev | dev_common |
| test | dev_{online_version} |
| product | master3 |
研发角色的权限
| 角色 | 分支权限 | 环境权限 |
|---|---|---|
| 开发者 | 1. 创建 feature 分支 |
-
feature 分支的 commit 权限
-
自己创建的 feature 分支合并到 dev_common 分支。
-
自己创建的 feature 分支合并到dev_{online_version} 分支。 | 1. 把 dev_common 分支发布到 dev 环境。 | | 研发经理 | 1. 创建项目仓库。
-
创建 dev_common 分支。
-
创建 dev_{online_version}分支。
-
创建 feature 分支
-
feature 分支的 commit 权限
-
所有 feature 分支合并到 dev_common 分支。
-
所有 feature 分支合并到dev_{online_version} 分支。
-
dev_{online_version} 合并到 master 分支
-
master 分支打 tag | 1. dev_common 分支发布到 dev 环境。
-
dev_{online_version}分支 发布到 test 环境。
-
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。