larrykkk/notes

寫一個好的 Git commit message

larrykkk opened this issue · 1 comments

前言

每次在寫git commit message的時候,都覺得這次這個message要怎麼寫啊傷腦筋,況且每次寫出來的東西都沒有一致的格式,導致自己覺得混亂乾脆不去看他,漸漸的就步入了一種惡性循環當中,趁這個機會做個紀錄並糾正自己的格式。

惡性循環
亂寫message >> 不去管理他 >> 繼續亂寫

為何要寫好git commit message?

主要是讓後續維護者(或者是自己)閱讀,單憑 Git commit message 就能瞭解之前做過了那些改動,而不需要去檢查每一個� log� 究竟做了什麼改動,假設code改動超過幾百行,但是目的只為了達到某件事情,那直接寫在 Git commit message 上面不就讓人一目瞭然了嗎?

如何寫好的git commit message?

在Google一番之後發現中文文章大多數是參考這篇文章作為標準,不過我是參考中文版

其實這沒有絕對好或壞,單純是看人、團隊的規定。那你說:我們團隊沒有規範,都是各自開發怎麼辦?那就只好自己規範一套自己的拉~

規範

這邊直接套用文章中的七大原則

1. 用一行空白行分隔標題與內容

Fixed companyProfile Bugs(標題)

when user enter this page,will see name split each char(內文)

2.限制標題最多只有 50 字元

標題越簡潔越好,與內容相反。

3.標題開頭要大寫

使標題方便在 git log --oneline 下閱讀

4.標題不以句點結尾

5.以祈使句撰寫標題

舉例而言:

If applied, this commit will refactor subsystem X for readability
If applied, this commit will update getting started documentation
If applied, this commit will remove deprecated methods
If applied, this commit will release version 1.0.0
If applied, this commit will merge pull request #123 from user/branch

注意到,如果使用非祈使句會讓這個句子不通順:

If applied, this commit will fixed bug with Y
If applied, this commit will changing behavior of X
If applied, this commit will more fixes for broken stuff
If applied, this commit will sweet new API methods

6.內文每行最多 72 字

如果只更動內容只使用標題的文字就可以描述的話可以省略內文

7.用內文解釋 what 以及 why vs. how

其他但是也很重要的

可以在gcm的標題最前面加上類別好分辨

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

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

或者是

fix: example title message

取決於喜好or規範