用途:把当前已暂存(staged)的文件提交为一次 commit,并生成准确、简洁的提交信息。适合用户要求“commit”或执行提交时使用。
主要能力与流程:
- 识别暂存文件:运行 git diff --cached --name-only,记录暂存文件清单,作为整个流程的唯一依据;若没有暂存内容,告知用户并停止。
- 分析改动并提交:运行 git diff --cached 查看实际差异,再用 git commit -m "<message>" 提交。提交信息规则:最多 60 字符;准确描述改动,若文件是修改、更新或重构,不要默认用“add”这类泛化动词;不添加署名信息,如“generated with”“co-authored-by”等;仅当项目已在用约定式提交/语义前缀时(可查看 git log --oneline -10)才使用。
- 处理 pre-commit 钩子失败:若提交成功则结束。若因 lint、类型检查、格式化失败,则先运行项目自身的维护命令自动修复,如 pnpm lint --fix、pnpm format、pnpm tsc:check、npm run lint(以项目实际脚本为准);未解决的再手动修复;随后仅重新暂存第一步清单中的文件(例外:lint 规则要求新增的辅助文件,如因文件长度或复杂度规则而拆分的重构文件,可一并暂存);最后用同一提交信息重试 git commit -m "<message>"。
限制与约束:绝不能使用 git add . 或任何批量暂存命令;格式化/检查工具改动的不在第一步清单中且非必需新增辅助文件的,应保持未暂存。资料未提供其他功能、收费或平台信息。