Git 提交規(guī)范
制定一個 git commit 信息的提交規(guī)范是開發(fā)團隊工作流必不可少的環(huán)節(jié)鞠绰。試想一下碾篡,如果查看主分支上的歷史庫也就是你查看 git log 的時候,打印出來的信息雜亂無章的話,如果代碼遇到問題,可能需要很大的精力與成本來查找到導致問題的代碼提交拔疚,所以團隊需要制定規(guī)范來引導成員編寫規(guī)范的 commit 信息。
接下來的 commit 信息規(guī)范參考了 angularjs 團隊的開發(fā)者指引與筆者的工作團隊進行總結(jié)既荚,讀者如有需要可以以此為基礎(chǔ)增加或修改成為自己團隊的 commit 規(guī)范的一部分稚失。
提交信息基本模板
如果 commit 信息都按照一定的模式進行提交,那么我們就會很容易找到自己想要的信息恰聘,模板參考如下:
<type>(<scope>): <subject> [<ISSUE_ID>]
<body>
<footer>
commit 信息包括三個字段: type (必需)句各, scope(可選) 和 subject(必需):
- type吸占。type 是用于說明該 commit 的類型的,一般我們會規(guī)定 type 的類型如下:
- feat: 新功能(feature)
- fix: 修復 bug
- docs: 文檔(documents)
- style: 代碼格式(不影響代碼運行的格式變動诫钓,注意不是指 CSS 的修改)
- refactor: 重構(gòu)(既不是新增功能旬昭,也不是修改 bug 的代碼變動)
- test: 提交測試代碼(單元測試篙螟,集成測試等)
- chore: 構(gòu)建或輔助工具的變動
- misc: 一些未歸類或不知道將它歸類到什么方面的提交
scope菌湃。scope 說明 commit 影響的范圍,比如數(shù)據(jù)層遍略,控制層惧所,視圖層等等,這個需要視具體場景與項目的不同而靈活變動
subject绪杏。subject 是對于該 commit 目的的簡短描述
- 使用第一人稱現(xiàn)在時的動詞開頭下愈,比如 modify 而不是 modified 或 modifies
- 首字母小寫,并且結(jié)尾不加句號
- ISSUEE_ID蕾久。這個與公司的需求管理與項目管理有關(guān)势似,假設你的項目放在 github 上,你的需求或者 bug 修復可能會有對應的 issues 記錄僧著,你可以加到你的 commit 信息中如 issue-37938634履因。
body 其實就是 subject 的詳細說明,而 footer 中你可以填寫相關(guān)的需求管理 issues id盹愚。
參考:
[1] https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines