1. github文档 https://github.com/conventional-changelog/commitlint
  2. 提交代码前,自动检查代码规范,如果不符合提交规范,就会提交失败

commitlint.svg

  1. # Install Husky v6
  2. npm install husky --save-dev
  3. # or
  4. yarn add husky --dev
  5. # Activate hooks
  6. npx husky install
  7. # or
  8. yarn husky install
  9. # Add hook
  10. npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

commit规范

@commitlint/config-conventional
https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional

type-enum提交类型

git commit 提交规范参考
https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional#type-enum

  • build
  • ci 工程配置
  • chore 项目工程方面的改动,代码逻辑并未产生任何变化
  • docs 文档,文档相关的改动
  • feat 新功能
  • fix bug修复
  • perf 提升了性能
  • refactor 重构代码或其他优化举措
  • revert
  • style 只修改了样式,对代码的格式化改动,代码逻辑并未产生任何变化
  • test 增加了测试脚本,新增或修改测试用例
  • rollback 回滚
  1. [
  2. 'build',
  3. 'ci',
  4. 'chore',
  5. 'docs',
  6. 'feat',
  7. 'fix',
  8. 'perf',
  9. 'refactor',
  10. 'revert',
  11. 'style',
  12. 'test'
  13. ]

提交案例

  1. echo "foo: some message" # fails
  2. echo "fix: some message" # passes
  3. echo ": some message" # fails
  4. echo "fix: some message" # passes
  5. echo "FIX: some message" # fails
  6. echo "fix: some message" # passes
  7. echo "fix(SCOPE): SOMEMESSAGE" # fails
  8. echo "fix(scope): some message" # passes
  9. echo "fix(scope): some Message" # passes

commit规范配置

commit规范参考 https://juejin.cn/post/6861769180736126983