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 | feat: message 信件通知功能 |