commit-work

commit-work

热门

创建高质量的 Git 提交:审查/暂存预期更改,拆分为逻辑提交,并编写清晰的提交消息(包括 Conventional Commits)。当用户要求提交、编写提交消息、暂存更改或将工作拆分为多个提交时使用。

2215Star
213Fork
更新于 2026/3/5
SKILL.md
只读
名称
commit-work
描述

创建高质量的 Git 提交:审查/暂存预期更改,拆分为逻辑提交,并编写清晰的提交消息(包括 Conventional Commits)。当用户要求提交、编写提交消息、暂存更改或将工作拆分为多个提交时使用。

提交工作

目标

创建易于审查且安全发布的提交:

  • 仅包含预期更改
  • 提交在逻辑上范围明确(必要时拆分)
  • 提交消息描述更改内容和原因

需要询问的输入(如果缺失)

  • 单个提交还是多个提交?(如果不确定:当存在不相关的更改时,默认使用多个小提交。)
  • 提交风格:必须使用 Conventional Commits。
  • 任何规则:最大主题长度、必需的作用域。

工作流程(检查清单)

  1. 在暂存前检查工作树
    • git status
    • git diff(未暂存)
    • 如果更改很多:git diff --stat
  2. 决定提交边界(如果需要则拆分)
    • 按以下方式拆分:功能 vs 重构、后端 vs 前端、格式化 vs 逻辑、测试 vs 生产代码、依赖更新 vs 行为变更。
    • 如果更改在同一个文件中混合,计划使用补丁暂存。
  3. 仅暂存属于下一个提交的内容
    • 对于混合更改,优先使用补丁暂存:git add -p
    • 取消暂存一个块/文件:git restore --staged -pgit restore --staged <path>
  4. 审查实际将要提交的内容
    • git diff --cached
    • 合理性检查:
      • 无秘密或令牌
      • 无意外的调试日志
      • 无无关的格式变动
  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,以及任何运行的测试)