关于 ce-clean-gone-branches
ce-clean-gone-branches 是用于清理远程跟踪分支已删除的本地 Git 分支及相关 worktree 的 Agent 技能。它会先列出待处理项,并在删除前征求确认。
主要功能
- 01获取并清理远程状态
- 02查找标记为 gone 的分支
- 03批量删除前征求确认
- 04移除关联的 worktree
适用场景
- 01清理远程已删除的分支
- 02移除过期的本地 worktree
- 03检查待清理的分支
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ everyinc/ compound-engineering-plugin --skill ce-clean-gone-branches安装后在 Claude Code 中输入/ce-clean-gone-branches确认已加载。
附带文件scripts/clean-gone
详细介绍
清理已失效的分支
删除远程跟踪分支已被删除的本地分支,包括所有关联的工作树。
工作流
步骤 1:查找已失效的分支
运行查找脚本以获取最新远程状态并识别已失效的分支:
bash scripts/clean-gone
脚本会先运行 git fetch --prune,然后解析 git branch -vv,查找标记为 : gone] 的分支。
如果脚本输出 __NONE__,则报告未找到过期分支并停止。
步骤 2:列出分支并征求确认
向用户显示将要删除的分支列表。使用简单列表格式:
These local branches have been deleted from the remote:
- feature/old-thing
- bugfix/resolved-issue
- experiment/abandoned
Delete all of them? (y/n)
使用平台的阻塞式提问工具等待用户回答:Claude Code 中使用 AskUserQuestion(如果尚未加载其架构,先调用 ToolSearch 并传入 select:AskUserQuestion);Codex 中使用 request_user_input;Gemini 中使用 ask_user;Pi 中使用 ask_user(需要 pi-ask-user 扩展)。仅当运行环境中不存在阻塞式工具或调用出错时(例如 Codex 编辑模式),才回退为仅在聊天中列出分支——不能仅因需要加载架构而跳过提问。切勿不经询问就跳过此步骤。
这是针对整个列表的是或否决定——不要提供多选或逐个分支选择。
步骤 3:删除已确认的分支
如果用户确认,则删除每个分支。对每个分支:
- 检查是否有关联的工作树(
git worktree list | grep "\\[$branch\\]") - 如果存在工作树且不是主仓库根目录,先将其移除:
git worktree remove --force "$worktree_path" - 删除分支:
git branch -D "$branch"
在操作过程中报告结果:
Removed worktree: .worktrees/feature/old-thing
Deleted branch: feature/old-thing
Deleted branch: bugfix/resolved-issue
Deleted branch: experiment/abandoned
Cleaned up 3 branches.
如果用户拒绝,请予以确认并停止,不要删除任何内容。
评论
支持 Markdown