我在泄露的 CIA 开发者文档中发现了一个有用的 Git one liner

发布: (2026年2月20日 GMT+8 22:03)
3 分钟阅读

Source: Hacker News

在 2017 年,维基泄密(WikiLeaks)公布了 Vault 7——一大批 CIA 的黑客工具和内部文档。在这些利用漏洞的工具和监控工具之中,埋藏着一页相当平凡的内容:内部开发者文档,里面有 Git 的技巧与窍门 link

大部分内容都是相当常规的——修改提交、暂存更改、使用 bisect。但有一个技巧从此一直保存在我的 ~/.zshrc 中。

问题

随着时间的推移,本地 Git 仓库会累积大量陈旧的分支。每一个曾经合并过的功能分支、热修复分支以及实验分支都停留在那里,毫无作用。git branch 看起来就像一个墓地。

你可以使用以下命令列出已合并的分支:

git branch --merged

但逐个删除实在太繁琐。CIA 的开发团队提供了一个更简洁的方案:

原始命令

git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d

工作原理

  • git branch --merged — 列出所有已合并到当前分支的本地分支。
  • grep -v "\*\|master" — 过滤掉当前分支(*)和 master,防止误删。
  • xargs -n 1 git branch -d — 逐个安全删除剩余的分支(小写 -d 不会删除未合并的分支)。

更新后的命令

由于大多数项目现在使用 main 而非 master,你可以对命令进行更新,并排除你经常使用的其他分支:

git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d

在一次部署后从 main 分支运行它,你的分支列表会从几十个条目缩减到寥寥几条。

我把它做成了 Git 别名,这样就不必记住完整语法:

alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'

然后在你的仓库中直接运行:

ciaclean

虽然只是个小技巧,却是那种每周能悄悄省下几分钟、保持仓库整洁的命令。

0 浏览
Back to Blog

相关文章

阅读更多 »

Conductor 更新:推出自动审查

在十二月,我们推出了 Conductor https://github.com/gemini-cli-extensions/conductor,这是一个为 Gemini CLI 设计的扩展,旨在实现上下文驱动的开发……

介绍 Slide-CN

你是否曾经创建过一个 presentation,并且必须在每一张 slide 上手动更改 header 的 font size?更改 font color 需要选择所有的 t...