git commit 提交規范 & 規范校驗


Install commitlint

npm install --save-dev @commitlint/cli @commitlint/config-conventional

echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js

或者配置可以在被定義.commitlintrc.js,.commitlintrc.json或者.commitlintrc.yml文件或commitlint在字段package.json

例如在package.json中加入
"commitlint": {
  "extends": [ "@commitlint/config-conventional" ],
  "rules": {
    "type-enum": [ 2, "always", [ "feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert" ] ],
    "type-case": [ 2, "always", [ "lower-case" ] ],
    "type-empty": [ 2, "never" ], "scope-empty": [ 2, "never" ],
    "scope-case": [ 2, "always", [ "lower-case", "upper-case", "camel-case", "kebab-case", "pascal-case", "sentence-case", "snake-case", "start-case" ] ],
    "subject-case": [ 2, "always", [ "lower-case", "upper-case", "camel-case", "kebab-case", "pascal-case", "sentence-case", "snake-case", "start-case" ] ],
    "subject-empty": [ 2, "never" ],
    "subject-full-stop": [ 2, "never" ],
    "header-max-length": [ 2, "always", 72 ]
  }
}

Install husky


npm install --save-dev husky

This allows us to add git hooks directly into our package.json via the husky.hooks field.

// package.json

"husky": {

        "hooks": {

            "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"

        } 

  }

commit規范


Commit message格式

type(scope?): subject 

注意冒號后面有空格。

type

用於說明 commit 的類別,只允許使用下面7個標識。

feat:新功能(feature)

fix:修補bug

docs:文檔(documentation)

style: 格式(不影響代碼運行的變動)

refactor:重構(即不是新增功能,也不是修改bug的代碼變動)

test:增加測試

chore:構建過程或輔助工具的變動

scope[optional]

表示改動的模塊或者文件或者功能

subject

提交簡短的問題描述

規則


規則由名稱和配置數組組成。配置數組包含:

級別 [0,1,2]:0禁用規則 1報warning 2.報error。

適用 always|never:never顛倒規則。

值:用於此規則的值。

參考鏈接: commitlint官網


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM