分⽀管理规范
⼀、概述
有多种git⼯作流的⽅式,我们采⽤的是国内⽐较主流的⽅式:“功能分⽀决定发布分⽀” 。
⼆、规范内容
环境介绍
环境 | 分支 | 备注 |
---|---|---|
生产环境 | master | 生产环境发布分支 |
预发布环境 | deploy_date | 预发布环境发布分支 |
测试环境 | release_date | 测试分支 |
开发环境 | dev_date | 开发分支 |
分⽀描述
master分支
唯⼀基准分⽀,创建Repository时默认会⽣成⼀个master分⽀。通常情况下master分⽀是受保护的(Protected)。master分⽀保存的是稳定的已发布到线上的代码, 会使⽤tag来记录发布的版本(tag 命名为: tag + “-” + “版本号”)。 master分⽀是不允许提交代码的,只能将代码合并(merge)到master。
feature分支
功能分⽀,从master创建。feature分⽀是⽤来开发新功能的,开发⼈员拉取各⾃的feature分⽀,命名例如:feature_data_permission
💡 【推荐】出现线上问题要修复,也从master拉取feature分⽀进⾏修复、测试、上线 。
dev_date
开发集成分⽀,从master创建。开发⼈员在feature分⽀上开发完、本地联调通过后,要把各⾃的feature分⽀合并到dev_date 分⽀进⾏集成测试。
release_date
测试集成分⽀,从master创建。准备提测了,要把各⾃的feature合并到release_date分⽀进⾏集成测试。
💡 【推荐】在实施的过程中可灵活⾃由变化,如果dev_date分⽀很有把握,就直接把dev_date合并到release_date分⽀,不需再重头来过了
deploy_date
预发布分⽀,从 master 创建。产品验收环境,直接把release_{date}合并到 deploy_date分⽀
三、实施过程
场景:当⼀个需求过来,规定开发周期是5⽉1⽇-5⽉07⽇,5⽉7⽇发版,发开发⼈员是张三、李四和 王五、其中张三是负责⼈。
过程:
• 开发过程
张三从 master 分⽀拉取feature_xxx,进⾏功能开发
李四从 master 分⽀拉取feature_yyy,进⾏功能开发
王五从 master 分⽀拉取feature_zzz,进⾏功能开发
• 联调过程
要上dev环境进⾏集成测试了
张三从 master 分⽀拉取dev_0507分⽀
张三合并feature_xxx到dev_0507分⽀
李四合并feature_yyy到dev_0507分⽀
王五合并feature_zzz到dev_0507分⽀
• 测试过程
要提测了,上test环境
张三从 master 分⽀拉取release_0507分⽀
张三合并feature_xxx到release_0507分⽀
李四合并feature_yyy到release_0507分⽀王五合并feature_zzz到release_0507分⽀
• 预发布过程
测试通过,要上预发环境进⾏产品验收了
张三从 master 分⽀拉取deploy_0507分⽀
张三合并feature_xxx到deploy_0507分⽀
李四合并feature_yyy到deploy_0507分⽀
王五合并feature_zzz到deploy_0507分⽀
💡 看具体情况,如果有把握,负责⼈就可以直接release_0507合并到deploy_0507分⽀
• 上线过程
产品验收完毕
张三合并deploy_0507到master分⽀,发布master分⽀上线。
四、最后
拥抱变化、灵活变通、持续优化
评论区