Git开发规范参考

分支管理

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
2
3
4
5
(develop)$: git checkout -b feature/xxx            # 从develop建立功能分支
(feature/xxx)$: blabla # 开发
(feature/xxx)$: git add xxx
(feature/xxx)$: git commit -m 'commit comment'
(develop)$: git merge feature/xxx --no-ff # 把功能分支合并到develop

修复紧急bug

1
2
3
4
5
6
(master)$: git checkout -b hotfix/xxx         # 从master建立hotfix分支
(hotfix/xxx)$: blabla # 开发
(hotfix/xxx)$: git add xxx
(hotfix/xxx)$: git commit -m 'commit comment'
(master)$: git merge hotfix/xxx --no-ff # 把hotfix分支合并到master,并上线到生产环境;注意,非管理员请用Merge Request;
(develop)$: git merge hotfix/xxx --no-ff # 把hotfix分支合并到develop,同步代码

测试环境发布测试

1
2
3
(develop)$: git checkout -b release/x.y.z           # 从develop建立预发布分支
(release/x.y.z)$: blabla # 开发或者从其他feature分支合并代码
(release/x.y.z)$: git merge develop --no-ff # 把develop分支合并到release/x.y.z,然后在测试环境拉取并测试

生产环境上线

1
2
(master)$: git merge release/x.y.z --no-ff          # 把release/x.y.z或者develop测试好的代码合并到master
(master)$: git tag -a 0.1.0 -m 'xxx' # 给版本命名,打Tag

注意:这一步由master管理员做,普通开发人员合并代码请用Merge Request。

Tag管理

Tag生成时间

master分支每次发布时,必须打tag。

Tag命名规范

版本格式:主版本号.次版本号.修订号,如:1.0.1。

版本号递增规则如下:

  • 主版本号:当你做了不兼容的 API 修改;项目架构发生巨大变化;
  • 次版本号:当你做了向下兼容的功能性新增;
  • 修订号:当你做了向下兼容的问题修正;小的修改,如代码格式修正等。

参考

您必须知道的 Git 分支开发规范
分支管理规范
git分支管理和工作流规范:具体规范

感谢你的阅读,如果文章对你有帮助,可以请作者喝杯茶!