用途:在准备提交代码时,先做质量检查与改动审查,再生成并执行一条规范的提交。触发方式为说出“commit”“save changes”或完成改动后准备提交。
主要能力与流程:检查当前状态并确定要提交的内容;对受影响文件运行质量门禁(lint、typecheck、测试);扫描暂存改动中的问题;根据 diff 起草 conventional commit 信息;按文件名暂存指定文件并创建提交;最后提示记录本次改动中的经验。
常用命令:git status、git diff --stat;npm run lint 2>&1 | tail -5、npm run typecheck 2>&1 | tail -5、npm test -- --changed --passWithNoTests 2>&1 | tail -10;git add <specific files>、git commit -m "<type>(<scope>): <summary>"。
提交前代码审查:检查生产代码(非测试文件)的暂存改动,包括 console.log/debugger 语句、无工单引用的 TODO/FIXME/HACK 注释、硬编码密钥或 API key、遗留的仅测试用代码,发现问题先标记再继续。
提交信息格式:<type>(<scope>): <short summary>,正文说明改了什么与为什么;类型包括 feat、fix、refactor、test、docs、chore、perf、ci、style。
约束:除非用户明确要求,否则不跳过质量门禁;按文件名暂存指定文件,禁止 git add -A 或 git add .;摘要不超过 72 字符,正文解释原因而非内容;不使用“fix bug”“update code”等泛化信息;适用时引用 issue 编号。
输出:质量门禁结果(通过/失败)、暂存改动中发现的问题、建议的提交信息、提交后的 commit hash,以及是否要记录经验的提示。
审查豁免:提交前扫描不标记以下内容——阈值、配置值或功能开关变更;不改变运行时行为的 import 重排;仅空白或格式变更;测试文件中增删 console.log;TODO/FIXME 注释(由 issue 跟踪器单独管理);不改变行为的变量或参数重命名。
限制:资料未提供安装方式、支持平台、收费与价格信息。