###### tags: `Git` # Git commit message 建議 ## 什麼是Commit message? 每次提交程式時的訊息,通常是用來記錄此次版本的相關資訊。 ## 為何需寫Commit message? - 助於日後幫助回憶其變動原因。 - 降低程式管理成本。 ## 提交格式 由三大部分組成: 1. Header 2. Body 3. Footer ```tiddlywiki= Header: <type>(<scope>):<subject> - type: commit的種類,必要欄位。 - scope: commit影響範圍,如資料庫等,可選欄位。 - subject: commit的簡短描述,不超過50字元,結尾不佳句號,必要欄位。 Body: - Commit的詳細描述,可多行,每行不超過72字元。 - 描述程式變動項目與理由,以及與先前行為之差異。 Footer: - 填寫任務編號。 - 紀錄不兼容之變動。 ``` type 種類限制如下: - feat: 新增/修改功能(feature)。 - fix: 修正錯誤。 - docs: 文件(documentations)。 - style: 格式(不影響程式運行如 tab)。 - refactor: 重構(相同功能下,優化其架構或可讀性)。 - perf: 改善效能(performance)。 - test: 增加測試。 - chore: 輔助工具變動。 - revert: 撤銷先前的commit。 ## 種類範例 ### feat ```tiddlywiki= feat: 新增遊戲菜單的控制來源。 需求: 1. 遊戲菜單新增滑鼠控制。 2. 遊戲菜單新增按鍵控制。 修改項目: 1. 針對各選項新增滑鼠偵測。 2. 建立Indicator table,使鍵盤依據table控制。 issue #666 ``` ### fix ```tiddlywiki= fix: 按鍵映射失效問題。 問題: 1. 按下ESC鍵沒有任何反應。 原因: 1. 搞錯內建映射API的parameter定義。 修正項目: 1. 調換映射之parameter。 issue #777 ``` ### docs ```tiddlywiki= docs: 新增class註解 ``` ```tiddlywiki= docs: 移除過期註解 過期註解佔用太多行數且無參考價值。 issue #123 ``` ### style ```tiddlywiki= style: 對齊程式碼 統一按照tab格數對齊,並按照階層格式化。 issue #124 ``` ### refactor ```tiddlywiki= refactor: 重構校正區域查詢邏輯 為了可讀性,將原本的switch case邏輯,改成字典查詢。 修改項目: 1. 建立字典table 2. 利用TryGetValue方法讀取校正區域 issue #125 ``` ### perf ```tiddlywiki= perf: 優化timeout時間 原本timeout太久,導致用戶抱怨,故優化。 修改項目: 1. 將原本timeout時間30s改為10s。 結果: 1. 縮短系統無回應時的響應時間。 issue #888 ``` ### revert ```tiddlywiki= revert: perf:優化timeout時間 客戶最後決定timeout時間維持30秒即可,故退版。 ``` ## 參考 - [Git Commit Message 這樣寫會更好,替專案引入規範與範例](https://ithelp.ithome.com.tw/articles/10228738) - Angular commit message規範