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$rootScopengHrefngClickngView,等…

當更改影響的範圍不止一個範圍時,可以使用*(星號)標識。

主題(Subject)

主題簡要描述了更改:

  • 使用祈使句式和現在時:「change」而不是「changed」或「changes」
  • 不要大寫第一個字母
  • 末尾沒有點(。)

正文(Body)

就像在主題中一樣,使用祈使句式現在時態:「change」而不是「changed」或「changes」。正文應包括改變的動機,並將其與以前的行為進行對比。

頁腳(Footer)

頁腳應包含有關Breaking Changes的所有信息,也是參考此提交關閉的GitHub問題的位置 。

重大更改應以BREAKING CHANGE:帶有空格或兩個換行符的單詞開頭。然後,將其餘的提交消息用於此目的。

詳細說明可以在本文檔中找到。