本篇文章主要用於記錄我自己在配置commit規範的時候流程和遇到的一些問題
問題
但是在日常工作中,git commit 的資訊都是簡單寫寫甚至隨便亂寫,這對於專案的管理和維護來說,無疑是不友好的。
目的
配置git commit校驗規範,形成規範的commit log,方便回溯定位問題 安裝提交驗證工具
yarn add @commitlint/config-conventional @commitlint/cli -D
複製程式碼
新增校驗格式的配置檔案 根目錄新建一個檔案commitlint.config.js 新增內容
module.exports = {extends: ['@commitlint/config-conventional']}
複製程式碼
為了在 git commit時可以自動使用commitlint 來檢查我們輸入的message,我們還需要安裝— husky。
yarn add husky -D
npx husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
複製程式碼
現在我們來測試提交下git commit -m '測試提交'
不符合提交規範報錯,並顯示錯誤原因。
在來嘗試下規範提交git commit -m 'test(app.vue): 修改配置'
好了現在就全部配置完成
提交規範
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
複製程式碼
Header 部分包括三個欄位:type(必需)、scope(可選)和subject(必需)
type
提交型別(必填項),feat: 新增feature fix: 修復bug docs: 僅僅修改了文件,如readme.md style: 僅僅是對格式進行修改,如逗號、縮排、空格等。不改變程式碼邏輯。 refactor: 程式碼重構,沒有新增功能或修復bug perf: 優化相關,如提升效能、使用者體驗等。 test: 測試用例,包括單元測試、整合測試。 chore: 改變構建流程、或者增加依賴庫、工具等。 revert: 版本回滾 build: 打包構建 ci 複製程式碼
scope
影響範圍(非必填)多個可以用/
,\
,,
隔開subject
提交簡短描述(必填)
Body
- 對本次 commit 修改內容的具體描述, 可以分為多行
Footer
BREAKING CHANGE
重大改變Issue
關閉或者修復之前的bug
commitizen
每次提交都要手動輸入命令,容易照成提交失敗。commitizen
是一款可以互動式建立提交資訊的工具可以幫助生成提交文件避免格式出錯
安裝
yarn add commitizen -D
// 安裝cz-conventional-changelog
// 將其儲存到package.json的依賴項或devDependencies
// 將config commitizen配置新增到package.json的根目錄,如下所示
npx commitizen init cz-conventional-changelog --save-dev --save-exact
// 配置
scripts: {
commit: cz
}
複製程式碼
使用yarn commit 提交嘗試一下
如果報錯刪除掉node_modules 重新安裝一次