git提交规范 husky + commitizen + conventional-changelog-cli

1,016 阅读1分钟

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.常规流程

image.png

注意: release 一般会在预正式服务器发布测试, 通过后再发布到正式服务器,验证通过后再合并release到master

2.线上异常流程

image.png

注意: hotfix 一般会在预正式服务器发布测试, 通过后再发布到正式服务器,验证通过后再合并hotfix到master

3.预发布异常流程

image.png