SuperAPI AI 工具集

branch-cleanup

通用与其它

查看项目

更新于 10-15 20:29

技能介绍

用途:盘点并清理完全合并或陈旧的 Git 分支(本地+远程)以及未使用的 worktree;对仍有独有提交、看似被放弃的分支,只标记供复核,不自动删除。

模式:inventory(默认,只分类不删除)、clean(用户确认后删除完全合并的本地与远程分支)、worktrees(确认后移除未使用的次级 worktree)。除非用户在同一条消息里已确认删除,否则先跑 inventory。

预检:git fetch origin --prune;确定集成分支 origin/main;记录当前 worktree 路径与分支,绝不删除正在运行技能的 worktree;若可用 gh,可用 gh pr list --state open 补充开放 PR 状态。

“完全合并”判定:分支相对 origin/main 领先提交数为 0,即 git rev-list --count origin/main..<ref> 为 0。不要仅依赖 git branch --merged 或 git branch -d,因为压缩合并与非 main HEAD 会误导;当 main 被其它 worktree 检出时,删除 0 领先的本地分支可能需要 git branch -D。

分类:Merged(领先 0,可安全删除本地+远程)、Active(领先>0、有开放 PR、近期提交或已检出 worktree,保留)、Stale—review(领先>0 但疑似废弃,仅标记)、Worktree—removable(次级 worktree,合并/远程已消失/游离暂存/重复检出,确认后移除)。Stale 启发式:最后提交超过 30 天、落后 origin/main 超过 50 个提交、上游 [gone] 但端点仍有独有提交、无开放 PR、与主检出同分支同提交的重复。

清理:确认后远程用 git push origin --delete <branch>,本地用 git branch -D <branch>,跳过 main 与当前分支;批量遍历 refs/heads 与 refs/remotes/origin/*。Worktree 用 git worktree list 列出,必要时 git worktree remove <path> --force 与 git worktree prune。

安全限制:绝不删除 main;未经逐分支明确批准不删除 Stale—review;不删除领先>0 的远程分支;不移除当前 worktree;切换分支前先 stash 或提交 WIP;强制推送不在范围内。输出按 summary、Stale 复核表、已执行动作与下一步组织。具体分类命令与输出 schema 见技能内 references/classify.md 与 references/output-schema.md。