在團隊協作或個人專案管理中,保持乾淨且一致的 Git Commit 紀錄是非常重要的。本篇整理了常見的 Git Commit Message 分類,採用 [分類] 說明(即 [xxx] yyy)的格式,並根據變更的「性質」將其分為五大類,方便在提交程式碼或更新資料時快速對照。
撰寫原則
- 格式:
[分類] 具體做了什麼 - 動詞開頭: 說明部分請使用明確的動詞(如:新增、修正、更新、重構)。
- 簡明扼要: 盡量控制在 50 個字元內,讓其他人一眼看懂變更目的。
一、 功能與邏輯修復 (Features & Fixes)
直接影響網站功能、使用者體驗或業務邏輯的改動。
分類 [xxx] | 中文說明 | 適用情境 (什麼時候用?) | 範例 yyy |
|---|---|---|---|
[FEAT] | 新增功能 | 開發了全新的功能,或是對使用者來說有感的新項目上線。 | 新增購物車結帳功能 |
[FIX] | 修復問題 | 程式碼有 Bug,或是修正了導致系統未按預期運作的錯誤。 | 修正商品頁面圖片無法顯示的問題 |
[HOTFIX] | 緊急修復 | 正式環境發生嚴重災情,必須立刻修復並發布。 | 修正結帳金額計算錯誤的嚴重漏洞 |
二、 專案維護與文件 (Maintenance & Docs)
與程式碼邏輯無關,純粹是靜態資料更新、環境維護或文件補充。
分類 [xxx] | 中文說明 | 適用情境 (什麼時候用?) | 範例 yyy |
|---|---|---|---|
[CHORE] | 日常維護 | (最適合靜態資料更新) 更新商品資訊、修改不影響建置的設定檔、整理專案結構等雜務。 | 更新 2026 夏季商品資訊與價格 |
[DOCS] | 文件變更 | 僅修改文件內容,例如 README.md、API 串接文件、或是新增程式碼註解。 | 更新資料庫架構說明文件 |
三、 程式碼品質與效能 (Code Quality & Performance)
沒有新增功能,也沒有修復 Bug,純粹是對現有程式碼進行體質上的優化。
分類 [xxx] | 中文說明 | 適用情境 (什麼時候用?) | 範例 yyy |
|---|---|---|---|
[REFACTOR] | 程式碼重構 | 優化程式碼的結構、寫法或命名,使其更好維護。 | 重構商品搜尋邏輯以提高可讀性 |
[PERF] | 效能優化 | 針對運行效能進行改動(例如:減少記憶體佔用、加快讀取速度)。 | 優化首頁載入速度,減少 API 請求次數 |
[STYLE] | 格式修改 | 調整程式碼格式,不影響運行邏輯。例如:調整空白鍵、縮排、補上分號。 | 修正 ESLint 縮排警告 |
四、 構建、測試與自動化 (Build, Test & DevOps)
影響開發環境、套件依賴或是部署流程的變更。
分類 [xxx] | 中文說明 | 適用情境 (什麼時候用?) | 範例 yyy |
|---|---|---|---|
[BUILD] | 建置系統 | 影響專案建置或外部依賴套件的變更(例如:新增 npm 套件、修改 Dockerfile 等)。 | 升級 Vue 版本至 3.4 |
[TEST] | 測試相關 | 新增缺失的測試案例,或是修改現有的測試程式碼。 | 新增使用者登入 API 的單元測試 |
[CI] | 持續整合 | 修改 CI/CD 的設定檔或自動化腳本(如 GitHub Actions、GitLab CI)。 | 更新 GitHub Actions 部署腳本 |
五、 版本控制與特殊操作 (Version Control & Others)
用於 Git 流程控制或團隊協作時的特殊標記。
分類 [xxx] | 中文說明 | 適用情境 (什麼時候用?) | 範例 yyy |
|---|---|---|---|
[REVERT] | 撤銷變更 | 發現之前的 commit 有問題,決定將程式碼「倒退」回上一版。 | 撤銷 [FEAT] 新增購物車結帳功能 |
[WIP] | 開發中 | (非標準,約定俗成) Work In Progress。暫存工作進度,準備下班或發起草稿合併請求。 | 開發會員登入模組中 |
[INIT] | 初始化 | (非標準,約定俗成) 專案剛建立,或是某個大型新模組剛開工的第一個 Commit。 | 初始化前端專案結構 |