SuperAPI AI 工具集

clean-branches

编程与开发

查看项目

更新于 10-15 22:11

技能介绍

用途:在用户要求清理分支、删除已合并分支或修剪陈旧分支时,安全地移除已合并和陈旧分支,删除前需用户确认。

主要能力:先执行 git fetch --all --prune 获取最新状态;若失败则仅做本地分析。通过脚本 bash ${CLAUDE_PLUGIN_ROOT}/skills/clean-branches/scripts/find-candidates.sh "$PATTERN" 识别候选分支,输出 MERGED 与 STALE 两段,并标注 [worktree:/path/to/wt] 和 [squash-merged]。支持传入 glob 模式(如 feature/*)过滤候选。

处理规则:受保护分支 main、master、develop、release/* 永不触碰。陈旧分支若存在活动 worktree 一律列入 blocked;已合并分支若 worktree 有未提交改动也列入 blocked,干净则保留在候选。结果分四组展示:已合并、陈旧、受保护、被阻止。

确认与删除:使用 AskUserQuestion 确认。带 worktree 的已合并分支选项会同时授权删除分支和 worktree;squash/rebase 合并的分支需用 git branch -D 强制删除。删除时先 git worktree remove /path/to/wt,失败则报告并跳过,不强制移除;随后普通合并用 git branch -d,squash/rebase 合并用 git branch -D。本地删除完成后,可多选列出有远程的分支,用 git push origin --delete <branch-name> 删除远程。

限制:删除完全依赖用户确认;worktree 在确认窗口内产生改动会导致删除失败并跳过;无远程时跳过远程清理步骤。