用途:该技能用于在本地仓库中创建一条 Conventional Commit。它有两种模式:默认的 commit 模式执行“选择路径、暂存、确认、提交”流程;message-only 模式只为当前已暂存的改动生成提交信息,不暂存、不取消暂存、不提交。
主要能力:提交信息遵循 commit-message 指令,由其决定类型、范围、描述与正文长度及页脚行。commit 模式先运行 git status --porcelain=v1 -z --untracked-files=all 和 git rev-parse --verify HEAD 盘点候选路径,记录已跟踪、未跟踪、删除、重命名、复制及初始已暂存路径;若 HEAD 无法验证则停止。若某路径同时有已暂存和未暂存改动,则停止并要求用户自行处理。随后展示候选路径及状态(不含文件内容),请用户选择本次提交的完整路径;初始已暂存路径必须全部被选中,否则在改动索引前停止。仅用 git --literal-pathspecs add -- <路径> 暂存所选路径,禁止无范围的 git add -A 或 git add -u。暂存后用宿主暂存改动工具核对暂存集合是否精确匹配,请用户确认后再提交。提交信息通过 STDIN 传入,例如 echo "<完整信息>" | git commit -F -,此步骤不运行其他 Git 命令。
message-only 模式:用 git --no-pager diff --staged 读取已暂存改动,无暂存内容时输出 No changes to commit. 并停止;生成的信息以代码块输出,提示用户原样复制或编辑后提交。
限制:不执行 push 或任何远程操作;不使用根 .gitignore 作为暂存授权;不添加 pre-commit 钩子或声称做确定性密钥检测。提交后调整仅在用户明确要求时进行,使用 git reset --soft HEAD^,不 amend、不 rebase、不用 reflog,只改信息不改文件内容。若暂存或提交失败,报告错误并停止,不重试。仅在路径选择和暂存集合确认两处等待用户决定,不凭沉默推断。