Clean Up Git Branches (Remote & Local)
Cleaning up a remote
Before you proceed, you should prune your remote and make sure you’re in master branch.
git remote prune origin
git checkout master
Merged Branches - These should all be safe to delete
for branch in `git branch -r --merged | grep -v HEAD`; do echo -e `git show --format="%cr|%an" $branch | head -n 1`'|'$branch; done | sort -r | column -s '|' -t | grep -v master
Unmerged Branches - These need to be looked at closely
for branch in `git branch -r --no-merged | grep -v HEAD`; do echo -e $branch'|'`git show --format="%cr|%an|%s" $branch | head -n 1`; done | sort -r | column -s '|' -t
Cleaning up local branches
Merged Branches - These should all be safe to delete
git branch --merged master | grep -v "\* master"
If you want to delete them automatically:
git branch --merged master | grep -v "\* master" | xargs git branch -d