目的
- 统一团队的Git工作流,包括分支使用、tag规范、issue等
- 统一团队的Git Commit日志标准,便于后续代码review,版本发布以及日志自动化生成
git工作流
git flow工作流:
- master为主分支,属保护分支,不能直接在此进行代码修改和提交。
- develop为日常使用分支。
- feature新功能分支,当完成一个功能并测试通过后进行合并到develop分支中。
- hotfix线上紧急漏洞修复分支,从master分支拉取创建,修复完bug后合并到master和develop分支中。
- gitlab flow工作流(最大原则叫做”上游优先”(upsteam first),即只存在一个主分支master,它是所有其他分支的”上游”。只有上游分支采纳的代码变化,才能应用到其他分支):
master->pre-production->production
- master开发环境分支
- pre-production预发环境分支
- production生产环境分支
git commit规范
1 | <type>(<scope>): <subject> |
1 | 占位标签解析: |
示例:
1 | 特性:添加头像功能 |
Git标签打包规范
Tag版本号:Tag包括3位版本,前缀使用v。比如v1.2.31。Tag命名规范:
1.新功能开发使用第2位版本号,bug修复使用第3位版本号
2.首版本号是全新的功能类,功能模块上线才做的调整
标题格式:项目名-日期内容格式:<分类>—<内容><分类>:
新功能、bug修复、优化、依赖升级、重构、漏洞&补丁
示例:
此图片引用自:我们的GIT工作流
Git Commit格式校验
- 准备commitlint/cli用于格式校验
- 准备husky用于git提交代码时触发校验
全局安装commitlint/cli
1 | npm install -g @commitlint/cli @commitlint/config-conventional |
2.在项目根目录创建配置文件commitlint.config.js,可以使用以下命令创建
1 | echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js |
3.在配置文件中定义提交规范,可使用以下配置:
1 | "module.exports = {extends: ['@commitlint/config-conventional']}" |
4.项目添加husky,进行git提交触发校验,安装如下:
1 | npm install husky --save-dev |
5.安装完成后在package.json中配置如下信息
1 | "scripts": { |
6.经过以上步骤,git commit的规范校验已经完成。可以进行代码提交了。
1 | 不规范提交>git commit -m "添加新功能" |
汉化与自定义校验规则
1.当前项目安装commitlint-config-cz,如下
1 | npm install commitlint-config-cz --save-dev |
2.commitlint校验规则配置添加如下设置:
1 | module.exports = { |
3.下载官方配置文件进行修改。官方配置文件cz-config-EXAMPLE.js。修改示例如下:
1 | 'use strict'; |
生成changelog
1.安装conventional-changelog,可以快速生成提交日志
1 | npm install -g conventional-changelog-cli |
2.项目根目录下添加 .czrc 配置文件,文件内容如下
1 | { "path": "cz-conventional-changelog" } |
3.在package.json中的scripts项增加如下指令
1 | "version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md" |
4.执行npm run version即可在当前目录生成changelog日志了。