GIT 分支管理规范
常设分支
master 分支
-- master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性,不能直接修改代码。上线时需打tag。
release 分支
-- release 为预上线分支,发布提测阶段,会release分支代码为基准提测
develop 分支
-- develop 为开发分支,始终保持最新完成以及bug修复后的代码
临时分支
feature 分支
-- 开发新功能时,以develop为基础创建feature分支
-- 分支命名:feature-*开头的为特性分支, 命名规则: feature-user-control、feature-domain或feature-任务单号
hotfix 分支
-- bug修复分支,从常设分支切出hotfix分支
-- 分支命名:hotfix-*开头的为bug分支,命名规则:hotfix-bug单号
开发流程
1、分支 ---- 从master分支切出一个新分支,命名为feature-*。
2、提交 ---- 开发者完成开发,提交分支到远程仓库。
3、合并 ---- 开发者发起merge请求(可在gitlab页面“New merge request”),将新分支请求merge到develop分支,并提醒code reviewer进行review
4、审查 ---- code reviewer对代码review之后,若无问题,则接受merge请求,新分支merge到develop分支,同时可删除新建分支;若有问题,则不能进行merge,可close该请求,同时通知开发者在新分支上进行相应调整。调整完后提交代码重复review流程。
5、转测 ---- 一个模块的相关功能完成前后端联调就进行转测,直接从当前develop分支merge到release分支,重新构建测试环境完成转测。
6、上线 ---- 测试完成后,从release分支merge到master分支,基于master分支构建生产环境完成上线。并对master分支打tag,tag名可为v1.0.0_2019032115(即版本号_上线时间)
BUG修复流程
正常开发
正常开发过程中,转测后测试环境发现的bug需要修复,从develop分支切出hotfix分支对bug进行修复,完成之后合并到develop分支。流程示意图如下:
正常流程.png
并行开发
并行开发过程中,转测后测试环境发现的bug需要修复,但是develop分支此时又有新内容且该部分内容目前不计划转测,可以release切出一个bug修复分支。完成之后需要同时merge到release分支与develop分支。流程示意图如下:
并行开发.png
生产环境Bug修复流程(紧急)
紧急Bug修复,需要从master分支切出一个bug修复分支,完成之后需要同时merge到master分支与develop分支(如果需要测试介入验证,则可先merge到release分支,验证通过后再merge到master分支上线)。流程示意图如下:
线上bug.png