commit-work

commit-work

熱門

建立高品質的 git 提交:檢視/暫存預期的變更、拆分為邏輯提交,並撰寫清晰的提交訊息(包含 Conventional Commits)。當使用者要求提交、撰寫提交訊息、暫存變更或將工作拆分為多個提交時使用。

2215星標
213分支
更新於 2026/3/5
SKILL.md
唯讀
名稱
commit-work
描述

建立高品質的 git 提交:檢視/暫存預期的變更、拆分為邏輯提交,並撰寫清晰的提交訊息(包含 Conventional Commits)。當使用者要求提交、撰寫提交訊息、暫存變更或將工作拆分為多個提交時使用。

提交工作

目標

建立易於審查且安全推送的提交:

  • 只包含預期的變更
  • 提交在邏輯上範圍明確(必要時拆分)
  • 提交訊息描述變更內容與原因

需要詢問的輸入(若缺少時)

  • 單一提交或多個提交?(若不確定:預設為當有不相關的變更時,使用多個小型提交。)
  • 提交風格:必須使用 Conventional Commits。
  • 任何規則:主旨最大長度、必要的 scope。

工作流程(檢查清單)

  1. 在暫存前檢視工作目錄
    • git status
    • git diff(未暫存)
    • 若變更很多:git diff --stat
  2. 決定提交邊界(必要時拆分)
    • 依以下方式拆分:功能 vs 重構、後端 vs 前端、格式化 vs 邏輯、測試 vs 正式程式碼、相依套件升級 vs 行為變更。
    • 若變更在同一個檔案中混合,規劃使用 patch 暫存。
  3. 只暫存屬於下一個提交的內容
    • 對於混合變更,偏好使用 patch 暫存:git add -p
    • 若要取消暫存某個區塊或檔案:git restore --staged -pgit restore --staged <path>
  4. 檢視實際將被提交的內容
    • git diff --cached
    • 合理性檢查:
      • 沒有機密或 token
      • 沒有意外的除錯日誌
      • 沒有不相關的格式變動
  5. 用 1-2 句話描述暫存的變更(在撰寫訊息之前)
    • 「變更了什麼?」+「為什麼?」
    • 若無法清楚描述,則提交可能太大或混合了不同內容;回到步驟 2。
  6. 撰寫提交訊息
    • 使用 Conventional Commits(必要):
      • type(scope): short summary
      • 空行
      • 主體(什麼/為什麼,而非實作日記)
      • 頁尾(BREAKING CHANGE)若需要
    • 偏好使用編輯器處理多行訊息:git commit -v
    • 若有幫助,可使用 references/commit-message-template.md
  7. 執行最小相關驗證
    • 在繼續之前,執行儲存庫中最快的有效檢查(單元測試、lint 或建置)。
  8. 重複上述步驟進行下一個提交,直到工作目錄乾淨為止

交付物

提供:

  • 最終的提交訊息
  • 每個提交的簡短摘要(變更內容/原因)
  • 用於暫存/檢視的指令(至少:git diff --cached,以及任何執行的測試)