Delete Merged Branches with git
It's common courtesy to keep your git branch list clean, especially when colleagues need to fetch your remote branches. I'm a bit of a ... offender, when it comes to maintaining my git branch list. My colleague John Karahalis is not, however, and he hooked me up with an awesome git alias for deleting branches that have been merged into master. Place the following within your .git/config
file:
[alias] delete-merged-branches = "!f() { git checkout --quiet master && git branch --merged | grep --invert-match '\\*' | xargs -n 1 git branch --delete; git checkout --quiet @{-1}; }; f"
You can run this command via:
git delete-merged-branches
The script worked masterfully -- all branches merged into master were gone and I was left to evaluate which local branches were left to send pull requests for. Beautiful. Keep this around if you're a lazy git-ter like me!
Nice tip – thanks
Thanks, very handy. Also found this https://gist.github.com/malclocke/943565 to do the same for all merged remote branches.
Also note that you can prune remote-tracking references (e.g., remotes/foo/patch-1) with either
fetch --prune foo
orremote prune foo
.