# Created on savesnippets.com · https://savesnippets.com/ncFdTkBvqYMxKV # 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