📖博客原文 :xxoo521.com《規範git commit的提交記錄(交互式命令行)》
隨着項目體積的增長,參與到項目中的同窗愈來愈多,每一個人都有本身的打 git log 的習慣:javascript
add: 添加...
[add]: 添加...
Add 添加...
爲了造成統一的規範,達成共識,從而下降協做開發成本,須要對 git commit 記錄進行規範。前端
規範 git commit 記錄,須要作兩件事情:java
問:既然已經交互式生成了規範記錄,爲何須要在 hooks 進行檢查?
交互式生成 commit 記錄,須要用戶調用自定義的 npm scripts,例如npm run commit
。但仍是能夠直接調用原生 git 命令 git commit
來提交記錄。而檢查是在正式提交前進行的,所以不符合要求的記錄不會生效,須要從新 commit。node
前期調研結果,關於 commit 提示有兩種作法:git
方法 1 的優缺點:算法
優勢 1: 直接安裝對應的 adapter 便可shell
優勢 2: 無開發成本npm
缺點 1: 沒法定製,不必定知足團隊須要json
方法 2 的優缺點:spa
優勢 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
。
<img src="https://tva1.sinaimg.cn/large/006tNbRwly1gbjcfr3xb5j30cw00tjrd.jpg" style="width: 100% !important;"/>
👇掃碼關注「心譚博客」,查看「前端圖譜」&「算法題解」,堅持分享,共同成長👇