你的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-2024wip/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


GitHub: https://github.com/zacheryglass/.claude

评论区

0 条评论

登录后可评论。

林小秋 11 阅读