📖博客原文 :xxoo521.com《規範git commit的提交記錄(交互式命令行)》javascript
隨着項目體積的增長,參與到項目中的同窗愈來愈多,每一個人都有本身的打 git log 的習慣:前端
add: 添加...
[add]: 添加...
Add 添加...
爲了造成統一的規範,達成共識,從而下降協做開發成本,須要對 git commit 記錄進行規範。java
規範 git commit 記錄,須要作兩件事情:node
問:既然已經交互式生成了規範記錄,爲何須要在 hooks 進行檢查?git
交互式生成 commit 記錄,須要用戶調用自定義的 npm scripts,例如npm run commit
。但仍是能夠直接調用原生 git 命令 git commit
來提交記錄。而檢查是在正式提交前進行的,所以不符合要求的記錄不會生效,須要從新 commit。算法
前期調研結果,關於 commit 提示有兩種作法:shell
方法 1 的優缺點:npm
優勢 1: 直接安裝對應的 adapter 便可json
優勢 2: 無開發成本ui
缺點 1: 沒法定製,不必定知足團隊須要
方法 2 的優缺點:
優勢 1: 可定製,知足開發需求
優勢 2: 單獨成庫,發佈 tnpm,做爲技術建設
缺點 1: 須要單獨一個倉庫(但開發成本不高)
在實際工做中,發現方法 1 中的經常使用規範,足夠覆蓋團隊平常開發場景。因此,選擇了方法 1.
step1: 安裝 npm 包
npm i --save-dev commitizen cz-conventional-changelog @commitlint/cli @commitlint/config-conventional husky
複製代碼
添加 package.json 的配置:
"scripts": {
"commit": "git-cz"
},
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
複製代碼
在項目根目錄下建立commitlint.config.js
:
module.exports = {
extends: ["@commitlint/config-conventional"]
};
複製代碼
使用方法:再也不使用git commit -m ...
,而是調用npm run commit
。
👇掃碼關注「心譚博客」,查看「前端圖譜」&「算法題解」,堅持分享,共同成長👇