Git提交信息規範Git Commit Message
- 2019 年 11 月 22 日
- 筆記
目前規範使用較多的是引用或衍生 Github Angular開發中<提交信息準則>章節(Commit Message Guidelines).以下為規範譯文:
關於如何格式化git commit消息,我們有非常精確的規則。這樣會有更具可讀性的消息,在查看項目歷史記錄時易於遵循。而且,我們使用git commit消息生成AngularJS更改日誌。
可以使用典型的git工作流程或使用CLI嚮導(Commitizen)添加提交消息格式。要使用該嚮導,yarn run commit
請在對git進行更改後在終端中運行。
提交消息格式
每個提交消息均由信息頭(header),正文(body)和頁腳(footer)組成。信息頭(header)具有一種特殊的格式,包括type(類型),scope(範圍)和subject(主題):
<type>(<scope>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer>
所述信息頭(header)是必須的,而信息頭範圍(scope)的是可選的。
提交消息的任何一行都不能超過100個字符!這使得該消息在GitHub以及各種git工具中更易於閱讀。
Revert
如果提交還原了先前的提交,則應以開頭revert:
,後跟還原的提交的標頭。在正文中應該說:This reverts commit <hash>.
,其中哈希是要還原的提交的SHA。
類型(type)
必須為以下之一:
- feat:一項新功能(feature)
- fix:一個bug修復
- docs:僅文檔更改
- style:風格,不影響代碼含義的更改(空白,格式,缺少分號等)
- refactor:重構,既不修正錯誤也不增加功能的代碼更改
- perf:改進性能的代碼改動
- test:添加缺失或更正現有測試
- chore:更改構建過程或輔助工具和庫,例如文檔生成
範圍(scope)
範圍可以是指定提交更改位置的任何內容。例如$location
, $browser
,$compile
,$rootScope
,ngHref
,ngClick
,ngView
,等…
當更改影響的範圍不止一個範圍時,可以使用*(星號)標識。
主題(Subject)
主題簡要描述了更改:
- 使用祈使句式和現在時:「change」而不是「changed」或「changes」
- 不要大寫第一個字母
- 末尾沒有點(。)
正文(Body)
就像在主題中一樣,使用祈使句式現在時態:「change」而不是「changed」或「changes」。正文應包括改變的動機,並將其與以前的行為進行對比。
頁腳(Footer)
頁腳應包含有關Breaking Changes的所有信息,也是參考此提交關閉的GitHub問題的位置 。
重大更改應以BREAKING CHANGE:
帶有空格或兩個換行符的單詞開頭。然後,將其餘的提交消息用於此目的。
詳細說明可以在本文檔中找到。