Skip to content

Instantly share code, notes, and snippets.

@davidcelis
Created November 21, 2012 20:58
Show Gist options
  • Save davidcelis/4127671 to your computer and use it in GitHub Desktop.
Save davidcelis/4127671 to your computer and use it in GitHub Desktop.
Prune local/remote refs and delete remote branches that have been merged to master
prune_merged() {
# TODO: Test for origin/master vs. master instead.
test -n "$1" && prune_merged_remotes $@ || prune_merged_local
}
prune_merged_local() {
git branch --list --merged |
grep --invert-match --extended-regexp '\*|master' |
xargs -n 1 git branch --delete
}
prune_merged_remotes() {
git fetch origin
git remote prune origin
git branch --list --remote --merged $1 |
grep --invert-match --extended-regexp "HEAD|master|$1" |
sed 's/ *origin\///' |
xargs -p -I branch git push origin :branch
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment