gitlab flow分支规范
分支介绍
dev-rcx
开发分支dev-rcx用于公共本地开发,对应开发数据库,x为大版本号,相同版本号的开发分支唯一,可以同时存在不同版本的开发分支
test
测试分支test用于发布到测试环境,对应测试数据库,该分支唯一,为受保护的分支
preview
验证分支preview用于发布到验证环境,对应验证数据库,上游分支为test,该分支唯一,为受保护分支
prod
生产分支prod用于发布到生产环境,对应生产数据库,上游分支为preview,该分支唯一,为受保护分支
流程图
开发流程
1.从当前test分支上checkout对应需要开发版本的分支dev-rcx,x为开发版本号
flyway脚本只有在合并到test分支时才会移动到resources目录下,否则在任意dev分支下,都不允许放在resources下面
2.一般情况下,dev-rc(x+1)会在dev-rcx发布之后再进行开发,dev-rc(x+1)在dev-rcx发布前不会合并到test分支上
3.特殊情况,dev-rc(x+1)在开发后,dev-rcx追加开发内容使得dev-rc(x+1)落后test分支
此时有merge或rebase两种方案更新dev-rc(x+1)分支
1.test分支merge dev-rc(x+1)上
2.dev-rc(x+1)分支rebase test分支
4.线上bug紧急修复
情况一:prod分支中需要改的代码文件与RCX分支对应代码文件版本不一致
基于prod切出临时分支
合并到prod与test分支
情况二:prod分支中需要改的代码文件与RCX分支对应代码文件版本一致
RCX直接提交commit,cherrypick到prod分支,后续合并到test分支
分支命名规范
type/branchName/username_desc
例如:feat/rc4/zhangsan_refuse,fix/prod/zhangsan_register
type
用于说明 commit 的类别
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动branchName
基于哪个分支切出的,就按哪个分支命名,例如rc4
username
哪个人切的,例如zhangsan
desc
该分支主要做什么,例如refuse,register
Commit Message格式
<type>: <subject>
build. 编译相关、构建
chore.构建流程、依赖库
ci.持续构建
docs.文档
feat.新功能
fix.修复bug
perf. 优化、提升性能体验
refactor. 重构
revert.回滚
style.代码格式
test.测试用例