Git Commit 規範流程化

結合 commitizen commitlint conventional-changelog-cli husky,進行封裝,一鍵安裝,開箱即用的 git commit 規範。vue

團隊多人協做開發時,每一個開發人員習慣不一樣,提交 commit 信息不一,而項目中 commit 信息極爲重要,是梳理不一樣階段項目迭代維護狀況的直觀表現,也是覆盤時 code view 的最好選擇途徑。團隊梳理出相關 commit 規範後,配套相應的約束工具,從而讓每一個開發者提交 commit 信息時都能遵照一套相應的準則, 讓項目中的 commit message 看起來更優雅和清晰。node

涉及相關插件

主要 commit 約束插件:git

  • commitizen 一個格式化 commit message 的工具vue-cli

  • commitlint 檢查 commit message 是否符合常規的提交格式。shell

  • conventional-changelog-cli 每次 commit 後產生 change log 日誌文件npm

  • @commitlint/config-conventional 一些常規的 commitlint 規則,若是不知足,將產生一個非零的退出代碼,退出當前執行程序。json

輔助插件:bash

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

安裝:工具

npm i vue-cli-plugin-commitlint commitizen commitlint conventional-changelog-cli husky -D
複製代碼

功能:ui

  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
    複製代碼
👇 公衆號 👇
相關文章
相關標籤/搜索