使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
提交 Writer是一项面向实际任务的技能,主要用于生成与语义化版本、 变换lo 工作相关的机器可读信件。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
依据 Conventional Commits 规范,自动生成清晰、标准化的 Git 提交信息。所生成的信息具备机器可读性,兼容语义化版本控制(semantic versioning)、变更日志(changelog)生成工具及 CI 流水线。
| 场景 | 命令 / 操作 |
|---|---|
| 需基于暂存区(staged)变更生成提交信息 | 运行 git diff --cached --stat + git diff --cached |
| 需基于全部变更(包括未暂存)生成提交信息 | 运行 git diff --stat + git diff |
| 需要近期提交历史作为上下文 | 运行 git log --oneline -5 |
| 修正上一次提交(amend) | 使用 git commit --amend(须先向用户确认) |
( ):
| Type | 适用场景 | 示例 |
|---|---|---|
feat |
新增功能 | feat(auth): add OAuth2 login flow |
fix |
修复缺陷(bug) | fix(parser): handle empty input edge case |
docs |
仅涉及文档修改 | docs: fix typo in README |
style |
代码格式调整(如缩进、分号、空格等),不改变生产代码逻辑 | style: format with prettier |
refactor |
代码重构(不新增功能,也不修复缺陷) | refactor(api): extract validation middleware |
perf |
性能优化 | perf(db): add index on user email column |
test |
新增或修复测试 | test(api): add endpoint integration tests |
build |
构建系统或依赖项变更 | build: bump lodash to 4.17.21 |
ci |
CI/CD 配置变更 | ci: add GitHub Actions release workflow |
chore |
日常维护、工具配置、脚本更新等 | chore: configure ESLint |
revert |
回退(revert)某次先前的提交 | revert: feat(auth): add OAuth2 login flow |
为可选字段,但当变更影响范围较明确时强烈建议填写:
feat(auth)、fix(checkout)refactor(database)、perf(api)docs(readme)、test(e2e)在 type/scope 后添加 !,或在 footer 中显式声明 BREAKING CHANGE:
feat(api)!: remove deprecated v1 endpoints Migrate to v2 endpoints. See migration guide. BREAKING CHANGE: v1 API endpoints removed. Use /api/v2/* instead.
当仅靠 subject 不足以说明变更意图时使用:
- 开头)分条列出feat(cart): add quantity validation - Prevent checkout with zero-quantity items - Show inline error per line item
用于问题追踪(issue tracking)和破坏性变更说明:
BREAKING CHANGE: — 破坏性变更通知Closes #123、Fixes #456 — 关联 issue 并自动关闭Refs #789 — 引用相关 issue(不自动关闭)Co-authored-by: Name — 标注协作者基于 diff 生成提交信息时,按以下步骤执行:
当一个 diff 包含多个不相关的变更时:
feat(api): add pagination support to listings
fix(parser): handle malformed JSON gracefully The parser crashed when receiving truncated JSON from upstream. Return a partial result with error metadata instead.
refactor(db)!: merge users and profiles tables BREAKING CHANGE: The `profiles` table is removed. Profile data is now in the `users` table under the `profile` JSONB column.
chore: configure ESLint and Prettier - Add .eslintrc.json with TypeScript rules - Add .prettierrc with project formatting settings - Add lint-staged for pre-commit checks
test(e2e): add checkout flow tests - Add test for complete purchase flow - Add test for coupon application - Add test for payment failure recovery
保留默认合并消息格式(如 Merge branch '...' )。除非用户明确要求,否则不得重写合并提交信息。
统一使用 revert: 类型,并在 subject 中包含原始提交的哈希值:
revert: feat(auth): add OAuth2 login flow This reverts commit a1b2c3d4e5f6...
仅当用户明确要求生成进行中(WIP)提交时,才使用 WIP: 前缀;否则默认采用 chore: wip 并附简短描述。
压缩多个提交时,选用其中最显著的 type。若压缩内容同时含 feat 和 fix,默认取 feat。
chore: update .gitignore chore: configure tsconfig.json paths chore: add editorconfig docs: update issue templates
当用户发出 “write a commit message” 指令时,执行以下流程:
git status 检查当前仓库状态git diff --cached --stat 查看暂存区变更统计git diff --cached 查看暂存区完整 diffgit log --oneline -5 获取最近 5 条提交上下文相关专题
热门下载
相关下载
精品课程
共39课时 | 5.4万人学习
共101课时 | 21.3万人学习
共39课时 | 4.9万人学习
最新文章