Git代碼提交規(guī)范
Git 代碼規(guī)范
Git 每次提交代碼,都是需要寫 Commit message(提交說明),否則就不允許提交。
Commit message 的格式 (三部分):
Heaher -----
必填type ---
必需scope --- 可選
subject ---
必需Body ---- 可省略
Footer ---- 可省略
Type說明
用于說明 commit ?的類別,僅支持允許以下7個(gè)標(biāo)識。
feat:新功能 (feature)
fix: 修補(bǔ)bug
docs:文檔(documentation)
style:格式(不影響代碼運(yùn)行的變動)
refactor:重構(gòu) (既不是新增功能,也不是修改bug的代碼變動)
test:增加測試
chore:構(gòu)建過程和輔助工具的變動注釋
如果type為feat和fix,則該 commit 將肯定出現(xiàn)在 Change log 之中。其他情況(docs、chore、style、refactor、test)由你決定,要不要放入 Change log,建議是不要。

效果如下:

Scope
scope用于說明 commit 影響的范圍,比如數(shù)據(jù)層、控制層、視圖層等等,視項(xiàng)目不同而不同。
例如在Angular,可以是$location, $browser, $compile, $rootScope, ngHref, ngClick, ngView等。
如果你的修改影響了不止一個(gè)scope,你可以使用*代替。
subject
subject是 commit 目的的簡短描述,不超過50個(gè)字符。
其他注意事項(xiàng):
以動詞開頭,使用第一人稱現(xiàn)在時(shí),比如change,而不是changed或changes
第一個(gè)字母小寫
結(jié)尾不加句號(.)
Body
Body 部分是對本次 commit 的詳細(xì)描述,可以分成多行。
有兩個(gè)注意點(diǎn):
使用第一人稱現(xiàn)在時(shí),比如使用change而不是changed或changes。
永遠(yuǎn)別忘了第2行是空行
應(yīng)該說明代碼變動的動機(jī),以及與以前行為的對比。
Footer
Footer 部分只用于以下兩種情況:
不兼容變動
如果當(dāng)前代碼與上一個(gè)版本不兼容,則 Footer 部分以BREAKING CHANGE開頭,后面是對變動的描述、以及變動理由和遷移方法
關(guān)閉 Issue
如果當(dāng)前 commit 針對某個(gè)issue,那么可以在 Footer 部分關(guān)閉這個(gè) issue 。
Closes #234
Revert
還有一種特殊情況,如果當(dāng)前 commit 用于撤銷以前的 commit,則必須以revert:開頭,后面跟著被撤銷 Commit 的 Header。
revert: feat(pencil): add 'xxxxx' option` `This reverts commit docsxxx.Body部分的格式是固定的,必須寫成This reverts commit .,
其中的hash是被撤銷 commit 的 SHA 標(biāo)識符。
如果當(dāng)前 commit 與被撤銷的 commit,在同一個(gè)發(fā)布(release)里面,
那么它們都不會出現(xiàn)在 Change log 里面。
如果兩者在不同的發(fā)布,那么當(dāng)前 commit,會出現(xiàn)在 Change log 的Reverts小標(biāo)題下面。
DO What You Want !

