2021-05-08-git提交规范

优势

  • 规范——遵从 AngularJS’s commit message convention
  • 简单——通过命令行可视化步骤提示填写对应描述,防止遗漏
  • 扩展——支持团队自定义提交模板(cz-customizable)
  • 分析——支持生成commit日志(standard-version),利于版本迭代

    安装

    1. 项目级别安装(可保证团队成员版本一致)
      npm install --save-dev commitizen
      
    2. 初始化Commitizen配套的适配器,如果你的npm版本在5.2以上,那么你可以使用npx来初始化.
npx commitizen init cz-conventional-changelog --save-dev --save-exact

该初始化命令主要完成以下3步:

  1. 安装cz-conventional-changelog包(提供日志标准)
  2. 将cz-conventional-changelog加入package.json的devDependencies依赖中
"devDependencies": {
  "cz-conventional-changelog": "^3.3.0"
	"cz-customizable": "^6.3.0",
},
  1. 在package.json根路径新增npm执行命令config.commit及config.commitizen配置项
"scripts": {
	"commit": "cz"
},
"config": {
	"commitizen": {
		"path": "./node_modules/cz-conventional-changelog"
	  }
}

husky

  1. 初始化 husky 配置
    cd ${项目根目录}
    npx husky install
    
  2. 添加 pre-commit 以及 commit-msg hook

commitlint 规范具体请查看git规范-提交与合并

npx husky add .husky/pre-commit "npm run lint && npm run styleLint && git add ."
npx husky add .husky/commit-msg "npx --no-install commitlint --edit \$1"
// yarn commitlint --config .commitlintrc.js --edit $1
  1. 添加 package scripts
#  package.json scripts 字段中添加下面的内容
"lint": "eslint --ext .vue,.js,.ts,.tsx ./ --max-warnings 0 --fix",
"styleLint": "stylelint **/*.{css,scss,sass,less,vue} --fix"