Clean up merged branches with git branch --delete-merged
Git 2.56 adds git branch --delete-merged, so you can stop using this:
git branch --merged | grep -v "^\*\|main\|master" | xargs git branch -d
It deletes local branches whose work has already landed on the upstream they track:
git branch --dry-run --delete-merged origin # preview
git branch --delete-merged origin
It’s also safer than the one-liner: it skips branches checked out in any worktree and any branch with branch.<name>.deleteMerged set to false. Docs