Git Message 編寫指南

我們在日常使用Git提交代碼時經(jīng)常會寫 commint message,否則就不允許提交。

一般來說,commit message 應(yīng)該清晰明了,說明本次提交的目的。

目前,社區(qū)有多種 Commit message 的寫法規(guī)范。本文介紹Angular規(guī)范,這是目前使用最廣的寫法,比較合理和系統(tǒng)化,并且有配套的工具。

格式化的Commit message 有什么好處?

  • 提供更多的歷史信息,方便快速瀏覽。

  • 可以過濾某些commit(比如文檔改動),便于快速查找信息。

  • 可以直接從commit生成Change log。

Commit message 規(guī)范說明

如果使用 IDEA 開發(fā),我們可以先裝個插件: Git Commit Template

裝完之后重啟IDEA,如果我們提交代碼會發(fā)現(xiàn)多了一個按鈕:

image.png

點擊之后就會出現(xiàn)一個 Commit Template,主要分為下面三個部分: Header, Body,F(xiàn)ooter。

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
image.png

Header

Header的部分只有一行,包括三個字段: type(必需), scope(可選), subject(必需)

對應(yīng)到idea插件上圖的配置分別為 Header部分的:

  • type(必需) Type of change commit類別
  • scope(可選) Scope of this change commint影響的范圍,如功能模塊,或者版本號
  • subject(必需) Short description 簡短的描述,如果有Team任務(wù),可以寫提任務(wù)編號

type用于說明 commit 的類別,只允許使用下面7個標識

  • feat:新功能(feature)
  • fix:修補bug
  • docs:文檔(documentation)
  • style: 格式(不影響代碼運行的變動,空格,格式化,等等)
  • refactor:重構(gòu)(即不是新增功能,也不是修改bug的代碼變動)
  • perf: 性能 (提高代碼性能的改變)
  • test:增加測試或者修改測試
  • build: 影響構(gòu)建系統(tǒng)或外部依賴項的更改(maven,gradle,npm 等等)
  • ci: 對CI配置文件和腳本的更改
  • chore:對非 src 和 test 目錄的修改
  • revert: Revert a commit

Body

Body 部分是對本次 commit 的詳細描述,可以分成多行。下面是一個范例。

More detailed explanatory text, if necessary. Wrap it to
about 72 characters or so.

Further paragraphs come after blank lines.

  • Bullet points are okay, too
  • Use a hanging indent

有兩個注意點。

(1)使用第一人稱現(xiàn)在時,比如使用change而不是changedchanges。

(2)應(yīng)該說明代碼變動的動機,以及與以前行為的對比。

Footer

Footer 部分只用于兩種情況。

不兼容變動

如果當前代碼與上一個版本不兼容,則 Footer 部分以BREAKING CHANGE開頭,后面是對變動的描述、以及變動理由和遷移方法。

關(guān)閉 Issue

如果當前 commit 針對某個issue,那么可以在 Footer 部分關(guān)閉這個 issue 。

實例

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容