Skip to content

git commit 格式參考

FunnyQ edited this page May 13, 2015 · 2 revisions

Git commit 的書寫方式

事實上 git commit 的寫法並沒有一個硬性的規範,但如果能夠有個統一規範的話,在翻閱歷史紀錄時(尤其是多人協作的情形下)將會更容易閱讀。

大原則

基本上依照以下的格式來書寫 commit。

  • 第一行
    • 這次變更的內容「概要」(標題)。
  • 第二行
    • 留空
  • 第三行
    • 這次變更的詳細內容與理由等。

第一行

依照 commit 的類別,在這行的開頭做出適當的標記。大概的格式會像下面這樣: [commit 類別] commit message.

commit 類別

大致上可以分類為以下幾種:

  • fix:bug 修正
  • hotfix:緊急嚴重的 bug 修正
  • add:新增檔案或功能
  • modify:功能上的修正(非 bug)
  • change:功能或規格變更
  • clean:程式碼整理(refactor)
  • disable:拿掉某功能(comment out)
  • remove:刪除檔案
  • upgrade:版本更新
  • revert:取消變更

概要

簡單描述這次 commit 的內容、達成的目的。

例如:[fix] 文字輸入框無法辨識 (可以的話盡量用英文來書寫,例如 [fix] text area unreadable issue.

第三行

在這個部分可以具體的寫下 commit 的內容與程式修改的理由。給 redmine 之類的 issue tracking 系統自動辨識的 trigger 也可以寫在這個部分。

例如:done #201 將文字輸入框的背景色加深 20% 提高對比。

完整的 commit 寫法

綜合上面的敘述,完整的寫法會像下面這樣。

[fix] 文字輸入框無法辨識

done #201 將文字輸入框的背景色加深 20% 提高對比。

關於 commit 的分割單位

究竟什麼時候該 commit,分割的細度應該切割到什麼程度,這其實也沒有一個標準。但可以明確的說,修正了一堆 bug 或寫完了好幾個功能才 commit 是個不太好的習慣。

基本上,「完成一件事情」之後就應該 commit,由自己決定什麼程度稱之為完成一件事情,並有一致的標準可以遵循就可以了。