Git Message 編寫指南

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

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

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

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

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

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

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

Commit message 規范說明

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

裝完之后重啟IDEA,如果我們提交代碼會發現多了一個按鈕:

image.png

點擊之后就會出現一個 Commit Template,主要分為下面三個部分: Header, Body,Footer。

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

Header

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

對應到idea插件上圖的配置分別為 Header部分的:

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

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

  • feat:新功能(feature)
  • fix:修補bug
  • docs:文檔(documentation)
  • style: 格式(不影響代碼運行的變動,空格,格式化,等等)
  • refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
  • perf: 性能 (提高代碼性能的改變)
  • test:增加測試或者修改測試
  • build: 影響構建系統或外部依賴項的更改(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)使用第一人稱現在時,比如使用change而不是changedchanges

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

Footer

Footer 部分只用于兩種情況。

不兼容變動

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

關閉 Issue

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

實例

image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容