Git Commit 规范流程化

1,403 阅读1分钟

结合 commitizen commitlint conventional-changelog-cli husky,进行封装,一键安装,开箱即用的 git commit 规范。

团队多人协作开发时,每个开发人员习惯不同,提交 commit 信息不一,而项目中 commit 信息极为重要,是梳理不同阶段项目迭代维护情况的直观表现,也是复盘时 code view 的最好选择途径。团队梳理出相关 commit 规范后,配套相应的约束工具,从而让每个开发者提交 commit 信息时都能遵守一套相应的准则, 让项目中的 commit message 看起来更优雅和清晰。

涉及相关插件

主要 commit 约束插件:

  • commitizen 一个格式化 commit message 的工具

  • commitlint 检查 commit message 是否符合常规的提交格式。

  • conventional-changelog-cli 每次 commit 后产生 change log 日志文件

  • @commitlint/config-conventional 一些常规的 commitlint 规则,如果不满足,将产生一个非零的退出代码,退出当前执行程序。

辅助插件:

  • vue-cli-plugin-commitlint vue 官方提供的代码提交规范, 主要是提示信息是中文
  • husky git hooks

安装:

npm i vue-cli-plugin-commitlint commitizen commitlint conventional-changelog-cli husky -D

功能:

  1. 自动检测 commit 是否规范,不规范不允许提交
  2. 自动提示 commit 填写格式。不怕忘记规范怎么写
  3. 集成 git add . && git commit 不需要在执行两个命令
  4. 自动生成 changelog

配置

  1. pacakge.json

    {
      "scripts": {
        "log": "conventional-changelog --config ./node_modules/vue-cli-plugin-commitlint/lib/log -i CHANGELOG.md -s -r 0",
        "cz": "npm run log && git add . && git cz",
      },
        "config": {
        "commitizen": {
          "path": "./node_modules/vue-cli-plugin-commitlint/lib/cz"
        }
      },
      "husky": {
        "hooks": {
          "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
        }
      }
    }
    
  2. 新增 commitment.config.js 文件

    module.exports = {
      extends: [
        './node_modules/vue-cli-plugin-commitlint/lib/lint',
        '@commitlint/config-conventional'
      ]
    };
    
  3. 使用

    # 生成 changelog 文件 并执行 git add . && git commit -m "" 
    npm run cz
    
    # 生成 changelog 文件
    npm run log
    
👇 公众号 👇