用途:在用户提出提交代码或校验提交信息时,按 conventionalcommits.org 规范生成结构清晰、便于评审的提交。
主要能力:提交信息格式为 <type>(<scope>): <imperative title>,正文 1-5 行说明改动内容及原因或影响。支持类型 feat、fix、docs、style、refactor、test、chore、perf、ci、build、revert;破坏性变更可用 ! 或 BREAKING CHANGE: 页脚,已知 issue 可加 Closes #123 之类页脚。
使用方式:提交前先运行 git status --short,阅读 git diff --cached 与 git diff,用 git ls-files --others --exclude-standard 列出未跟踪文件,并用 git log --oneline -10 参考既有 scope 与措辞。默认合并为一个相关改动提交;仅当改动互相独立且各自成立时才按文件拆分,实现与测试、同一改动的文档、依赖清单与锁文件应保持在一起,不做 hunk 级暂存。写入前需展示各提交涉及的文件、完整标题与正文、被排除文件及原因,获得批准后再用 git add -- <paths> 暂存,复查 git diff --cached,随后按拟定标题与正文提交。成功报告提交哈希,失败保留工作区且不绕过钩子;配置 commitlint 时以其为权威校验规则。校验提交信息时检查类型、小写 scope、祈使语气小写标题无句末句号、空行后 1-5 行正文,破坏性变更同时使用 ! 与页脚,并给出具体修正与修订后的信息。提交后如需创建 PR,可调用 code-pull-request 技能,由它识别平台、查找模板并调用 gh 或 glab。
适用场景:整理与提交本地 Git 改动、统一团队提交规范、校验粘贴的提交信息。
限制:不擅自暂存疑似密钥、凭据、本地配置或生成产物;不做 amend、rebase、push;无改动、未初始化仓库或提交失败时只报告情况;不编造未提供的功能或配置。