# Show what would be deleted first — always
git branch --merged main | grep -vE "^\*|main|master|develop"
# Delete them
git branch --merged main | grep -vE "^\*|main|master|develop" | xargs -n1 git branch -d
# Also prune stale remote-tracking branches
git fetch --prune
# Aggressive: delete branches whose upstream is gone (after a rebase + force-push)
git branch -vv | grep ': gone]' | awk '{print $1}' | xargs -n1 git branch -D
Create a free account and build your private vault. Share publicly whenever you want.