同一個工程項目,爲了方便管理,git 的 commit 信息最好按照一定的格式規範,以便在需要的時候方便使用。什麼是方便的時候,比如出現了一個線上 bug,所以需要回滾操作,知道了提交信息可以方便的定位問題。代碼 review 的時候也知道了該次 commit 幹了什麼,所以 commit 標準化好處很多,不再舉例。
實現
可以馬上想到的是利用 shell 結合 git hook 實現在 git commit 階段檢查輸入是否符合規範。符合就通過,不符合就終止,並給出提示信息。
規範是什麼
常見的分類有下面幾種:
- build:修改項目的的構建系統(xcodebuild、webpack、glup等)的提交
- ci:修改項目的持續集成流程(Kenkins、Travis等)的提交
- chore:構建過程或輔助工具的變化
- docs:文檔提交(documents)
- feat:新增功能(feature)
- fix:修復 bug
- pref:性能、體驗相關的提交
- refactor:代碼重構
- revert:回滾某個更早的提交
- style:不影響程序邏輯的代碼修改、主要是樣式方面的優化、修改
- test:測試相關的開發
輪子
在 github 上有 commitlint 這個項目,它可以很方便的在工程中做配置,並允許你自定義上面說的「規範」、「分類」。
commitlint:用於檢查提交信息