綜合阿里巴巴和高德地圖相關部門已有的規范總結的git commit規范(轉載)
<type>(<scope>): <subject>
type(必須)
用於說明git commit的類別,只允許使用下面的標識。
-
feat:新功能(feature)。
-
fix/to:修復bug,可以是QA發現的BUG,也可以是研發自己發現的BUG。
-
fix:產生diff並自動修復此問題。適合於一次提交直接修復問題
-
to:只產生diff不自動修復此問題。適合於多次提交。最終修復問題提交時使用fix
-
-
docs:文檔(documentation)。
-
style:格式(不影響代碼運行的變動)。
-
refactor:重構(即不是新增功能,也不是修改bug的代碼變動)。
-
perf:優化相關,比如提升性能、體驗。
-
test:增加測試。
-
chore:構建過程或輔助工具的變動。
-
revert:回滾到上一個版本。
-
merge:代碼合並。
-
sync:同步主線或分支的Bug。
scope(可選)
scope用於說明 commit 影響的范圍,比如數據層、控制層、視圖層等等,視項目不同而不同。
例如在Angular,可以是location,browser,compile,compile,rootScope, ngHref,ngClick,ngView等。如果你的修改影響了不止一個scope,你可以使用*代替。
subject(必須)
subject是commit目的的簡短描述,不超過50個字符。
- 建議使用中文(感覺中國人用中文描述問題能更清楚一些)。
- 結尾不加句號或其他標點符號。
根據以上規范git commit message將是如下的格式
fix(DAO):用戶查詢缺少username屬性
feat(Controller):用戶查詢接口開發
這樣規范git commit到底有哪些好處呢?
-
便於程序員對提交歷史進行追溯,了解發生了什么情況。
-
一旦約束了commit message,意味着我們將慎重的進行每一次提交,不能再一股腦的把各種各樣的改動都放在一個git commit里面,這樣一來整個代碼改動的歷史也將更加清晰。
-
格式化的commit message才可以用於自動化輸出Change log。