SuperAPI AI 工具集

git-squash

通用与其它

查看项目

更新于 10-16 07:57

技能介绍

用途:将当前功能分支相对解析出的默认分支的全部净变更,压缩成一个提交,适合在提交 PR 前整理历史。

主要能力:通过脚本 plan/apply 两阶段执行。plan 为只读预检,校验 Git 工作区、已附加分支、干净工作树/索引、解析出的基准、非默认的当前分支、合并基、正数的领先提交数及远程状态,返回 schemaVersion:1、原始 HEAD、合并基、基准引用、按时间顺序的提交、作者、树/远程状态与回滚信息。apply 将重写绑定到计划的原始 HEAD、分支、合并基、基准引用、干净状态、回滚索引及可选的 subject;变更前会重新校验,过期计划会失败且不改变历史。随后软重置到合并基,验证暂存的净变更非空,并用消息文件提交。若变更后、替换提交完成前失败,助手会恢复原始 HEAD 和精确索引,保留工作树文件。

使用方式:计划命令为 uv run "<skill-dir>/scripts/git-squash.py" plan [--cwd <repo>] [--base <branch>] [--subject <line>] > <plan.json>;应用命令为 uv run "<skill-dir>/scripts/git-squash.py" apply --plan <plan.json> --message-file <message.txt>。参数 --subject <line> 指定替换提交消息的首行,--base <branch> 覆盖默认分支检测。未指定 --base 时依次解析 origin/HEAD、origin 通告的 head、本地/远程的 main、master 或 trunk。未指定 --subject 时,代理根据净差异编写 conventional-commit 主题。提交消息由代理负责,需依据净差异,主题使用祈使语气、前缀后小写、无句末句号,正文最多五条要点,并为非当前 Git 用户的其他作者追加 Co-authored-by 尾注。

适用场景:功能分支提交较多、希望合并前压成单一提交以获得干净 PR 时。

限制:要求工作树与索引干净、当前分支非默认分支且领先基准;历史或状态过期时计划会失败。脚本路径与分类等其余信息暂未提供。