husky 提交拦截
#添加 husky 注意只安装4.0版本 , 5.0实现方式不一样
npm install husky@4.0 --save-dev
#在package.json 根节点添加入口, npm test为自己定义的命令
#这样在每次git commit -am 'xx' 的时候会触发pre-commit 对应的命令
"husky": {
"hooks": {
"pre-commit": "npm test"
}
},
commitizen 规范提交的内容
#安装commitizen
npm install commitizen -g
#初始化 提交模版
commitizen init cz-conventional-changelog --save-dev --save-exact
#开始提交,根据提示框选择
git cz
常用
- feat:新功能(feature)
- fix:修补bug
- wip:开发中
- style: 格式(不影响代码运行的变动)
- perf:优化/性能优化
- chore:构建过程或辅助工具的变动
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- revert:撤销修改
- ci:持续集成
少用
- test:增加测试
- docs:文档(documentation)
- workflow:工作流修改
- types:类型定义文件修改
conventional-changelog-cli 生成最新的提交记录文档
#安装
npm install -S conventional-changelog-cli
#在package.json 根节点添加入口
"scripts": {
"genlog": "conventional-changelog -p angular -i CHANGELOG.md -s"
},
#执行 生成CHANGELOG.md
npm run genlog
使用场景
创建对应的关联分支
- 主分支:master
- 开发分支:developer
- 功能分支:feature - 分支名称
- 分支发布:release - 版本号
- 线上紧急bug修复:hotfix - 版本号
- bug 分支修复:bugfix - 版本号 (用的不多)
git提交流程图
1.常规流程
注意: release 一般会在预正式服务器发布测试, 通过后再发布到正式服务器,验证通过后再合并release到master
2.线上异常流程
注意: hotfix 一般会在预正式服务器发布测试, 通过后再发布到正式服务器,验证通过后再合并hotfix到master