0%

Git commit 規範

Commit Message 最好兼俱 Why 及 What,讓日後進行維護人員更快進入狀況。

Commit Message 規範組成

1
header:<type>(<scope>): <subject>
  • type:代表 commit 的類別:feat、fix、docs、style,、refactor、test、chore,必要欄位。
  • scope:代表 commit 影響的範圍,例如資料庫、控制層、模板層等等,視專案不同而不同,為可選欄位。
  • subject:代表此 commit 的簡短描述,不要超過 50 個字元,結尾不要加句號,為必要欄位。
1
body: 對本次 Commit 的詳細描述,說明程式碼變動的項目與原因,還有與先前行為的對比,可分成多行,每一行不要超過 72 個字元。
1
footer:填寫任務編號(如果有的話) / BREAKING CHANGE (中斷性變更)(可忽略)。

type 只允許使用以下類別

  • feat: 新增/修改功能 (feature)。
  • fix: 修補 bug (bug fix)。
  • docs: 文件 (documentation)。
  • style: 格式 (不影響程式碼運行的變動 white-space, formatting, missing semi colons, etc)。
  • refactor: 重構 (既不是新增功能,也不是修補 bug 的程式碼變動)。
  • perf: 改善效能 (A code change that improves performance)。
  • test: 增加測試 (when adding missing tests)。
  • chore: 建構程序或輔助工具的變動 (maintain)。
  • revert: 撤銷回覆先前的 commit 例如:revert: type(scope): subject (回覆版本:xxxx)。

Type 是用來告訴進行 Code Review 的人應該以什麼態度來檢視 Commit 內容。

Commit 訊息範例

  • only header

    1. fix: 自訂表單新增/編輯頁面,修正離開頁面提醒邏輯
    2. feat: message 信件通知功能
    3. chore: 更新 testing 環境
    4. feat: message 信件通知功能

  • header+body+footer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
feat: message 信件通知功能

因應新需求做調整:
通知和 message 都要寄發每日信件,
通知和 message 都用放在同一封信裡面就好,
不然信件太多可能也不會有人想去看。

調整項目:
1. mail_template.php,新增 message 區塊。
2. Send_today_notify_mail.php,新增 取得每日 Message 邏輯。
3. Message_model_api.php,新增 $where 參數,以便取得每日訊息。
4. Message_api.php、Message_group_user_model_api.php,新增 取得訊息使用者邏輯,以便撈取每日訊息。

issue #863

參考

Git Commit Message 這樣寫會更好,替專案引入規範與範例