分支管理
git 的分支管理功能非常强大,为了提高效率、避免分支混乱,我们参考git flow的开发流程规范或者可以直接使用git flow工具。
分支构成
主要分支
master分支:永远处在即将发布(production-ready)状态;
develop分支:为开发分支,始终保持最新完成以及bug修复后的代码。
辅助分支
feature分支:开发新功能的分支,基于develop,开发完成后merge回develop;
release分支:准备要发布版本的分支(测试环境用的),用来修复SIT(System Integration Testing) bug;基于develop分支,完成后merge回develop和master分支;
hotfix分支:修复线上(master)紧急bug,等不及release分支就必须马上上线;基于master分支,完成后merge回master和develop分支。
命名规范约定如下:
- feature分支命名:feature/name
- release分支命名:release/name
- hotfix分支命名:hotfix/name
常见的开发流程
增加新功能
1 | (develop)$: git checkout -b feature/xxx # 从develop建立功能分支 |
修复紧急bug
1 | (master)$: git checkout -b hotfix/xxx # 从master建立hotfix分支 |
测试环境发布测试
1 | (develop)$: git checkout -b release/x.y.z # 从develop建立预发布分支 |
生产环境上线
1 | (master)$: git merge release/x.y.z --no-ff # 把release/x.y.z或者develop测试好的代码合并到master |
注意:这一步由master管理员做,普通开发人员合并代码请用Merge Request。
Tag管理
Tag生成时间
master分支每次发布时,必须打tag。
Tag命名规范
版本格式:主版本号.次版本号.修订号,如:1.0.1。
版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改;项目架构发生巨大变化;
- 次版本号:当你做了向下兼容的功能性新增;
- 修订号:当你做了向下兼容的问题修正;小的修改,如代码格式修正等。