I found a useful Git one liner buried in leaked CIA developer docs
Source: Hacker News
In 2017, WikiLeaks published Vault 7—a large cache of CIA hacking tools and internal documents. Buried among the exploits and surveillance tools was something far more mundane: a page of internal developer documentation with Git tips and tricks link.
Most of it is fairly standard stuff—amending commits, stashing changes, using bisect. But one tip has lived in my ~/.zshrc ever since.
The Problem
Over time, a local Git repository accumulates stale branches. Every feature branch, hotfix, and experiment you’ve ever merged sits there doing nothing. git branch starts to look like a graveyard.
You can list merged branches with:
git branch --merged
But deleting them one by one is tedious. The CIA’s dev team has a cleaner solution:
The original command
git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d
How it works
git branch --merged— lists all local branches that have already been merged into the current branch.grep -v "\*\|master"— filters out the current branch (*) andmasterso you don’t delete either.xargs -n 1 git branch -d— deletes each remaining branch one at a time, safely (lowercase-dwon’t touch unmerged branches).
The updated command
Since most projects now use main instead of master, you can update the command and exclude any other branches you frequently use:
git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d
Run this from main after a deployment and your branch list goes from dozens of entries back down to a handful.
I keep this as a Git alias so I don’t have to remember the syntax:
alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'
Then in your repo just run:
ciaclean
A small thing, but one of those commands that quietly saves a few minutes every week and keeps the repository tidy.