你的Git仓库是不是也乱成一团?用这个Skill一键清理,安全不丢代码
你的 Git 仓库是不是也长这样?几十个 worktree、上百个本地分支,用完的没删、时间久的找不到来源——每次 git branch 列出來都头皮发麻。
说实话我以前也是硬撑着。直到装了 git-worktree-prune 这个 Claude Code Skill,才终于有了一个靠谱的清理助手。
它到底干嘛的
这个 Skill 会自动扫描你仓库里的 worktree 和本地分支,把「可以安全删除」的那批挑出来。关键是它有两条硬规则:
- 分支只删没有唯一提交的:哪怕分支名看着没用了,只要上面的 commit 没被其他分支覆盖,就绝对不删。所以永远不会丢代码。
- worktree 只删干净状态的:有未提交内容的 worktree 会跳过,防止误删。
这两条规则是它的 safety invariant——换句话说,你可以放心跑,不用担心它乱来。
怎么用
装好之后,在 Claude Code 里直接说中文就行:
“帮我清理一下这个仓库的旧 worktree 和分支”
它会先跑一遍 dry-run(只分析,不动任何东西),输出类似这样的计划:
KEEP main — 主分支,保留
KEEP feat/auth — 有独有提交,保留
REMOVE worktree/hotfix-123 — 已合并,干净,可删
DELETE branch/old-research — 没有独有提交,可以安全删除
你看完满意了,再让它加 --apply 真正执行。完全是先审后杀的流程。
如果有些分支虽然没独有提交、但你还想保留(比如有 PR 追踪之类的),加 --protect <分支名> 就行。
还有一个 --fetch 参数,建议加上——它会先把远程最新状态拉下来,这样能识别出「已经推送到远程、可以放心删」的分支,清理得更彻底。
典型使用场景
场景一:长期项目积压了大量临时分支
用了几个月,冒出几十个 feat/xxx-2024、wip/yyy 类型的分支。手动一个个查太痛苦,这个 Skill 帮你一键筛出可删的。
场景二:worktree 删了但 metadata 残留
有时候你直接在 Finder 里把 worktree 文件夹拖进垃圾桶,但 Git 的 metadata 还在。下次 git worktree list 还会看到它。git worktree prune 能清理这类残留。
场景三:定期维护
可以把它和 GitHub Actions 结合起来,每周定时跑一次清理脚本,保持仓库清爽。
装了麻烦,不装更麻烦
Git 分支和 worktree 管理本质上是个「整理房间」的活——不做就会越来越乱,但没有安全网的时候谁也不敢乱删。
git-worktree-prune 把这个安全网给你搭好了。先 dry-run、后执行,分支(worktree)删了也留有后路。
GitHub:https://github.com/zacheryglass/.claude
评论区
登录后可评论。