通常情況下,commit message應該清晰明了,說明本次提交的目的,具體做了什么操作,但是在日常開發中,大家的commit message都比較隨意,中英文混合使用的情況有時候很常見,這就導致后續代碼維護成本比較大,
基于這些問題,可以通過husky和commitlint來規范commit的格式,來減小代碼維護成本,
Angular規范是目前使用最廣的寫法,比較合理和系統化,并且有配套的工具(VSCode插件git-commit-plugin就非常好用)
commit message介紹
commit message格式
<type>(<scope>): <subject>
type(必須)
用于說明 commit 的類別,只允許使用下面7個標識,
- feat:新功能(feature)
- fix:修補bug
- docs:檔案(documentation)
- style: 格式(不影響代碼運行的變動)
- refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
- test:增加測驗
- chore:構建程序或輔助工具的變動
scope(可選)
scope用于說明 commit 影響的范圍,比如資料層、控制層、視圖層等等,視專案不同而不同,
subject
subject是 commit 目的的簡短描述,不超過50個字符,
注意事項:
- 以動詞開頭,使用第一人稱現在時,比如
change,而不是changed或changes - 第一個字母小寫
- 結尾不加句號(.)
安裝到專案
husky
-
安裝 husky
npm install husky --save-dev -
初始化 husky
npx husky install -
設定專案 install 自動初始化 husky ,在 package.json 添加腳本
// package.json { "scripts": { "prepare": "husky install" } }
hook
新增 hook 勾子命令,專案中使用 commit-msg 勾子來校驗 commit message 是否符合規范: npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
運行上面命令后,將自動在 .husky 檔案夾下面新增對應的勾子檔案,如下

如果運行完新增勾子函式如果出現如下訊息

可以先執行 npx husky add .husky/commit-msg,然后手動去commit-msg檔案里添加npx --no-install commitlint --edit $1
commitlint
-
安裝 @commitlint/config-conventional @commitlint/cli
npm install --save-dev @commitlint/config-conventional @commitlint/cli -
新增組態檔 .commitlintrc.js
module.exports = { extends: [ '@commitlint/config-conventional' ] };
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/449793.html
標籤:其他
