Script Bash para limpar branches obsoletos do git

Execute-o para limpar ramos obsoletos locais e remotos (origem) de uma vez.

Coloque este script em um arquivo ~/bin/e execute chmod +x ~/bin/scriptname. Reinicie seu terminal e execute o script.

Agradecimentos a http://devblog.springest.com/a-script-to-remove-old-git-branches

Problemas conhecidos:
– Se você tiver outros controles remotos além de “origem”, ele fica barulhento (mas ainda funciona)
– Se seu controle remoto principal não for chamado de “origem”, você precisará editar o script de acordo.

# This has to be run from master

git checkout master


# Update our list of remotes

git fetch

git remote prune origin


# Remove local fully merged branches

git branch
--merged master | grep -v 'master$' | xargs git branch -d

# Show remote fully merged branches

echo
"The following remote branches are fully merged and will be removed:"
git branch
-r --merged master | sed 's/ *origin///' | grep -v 'master$'

read
-p "Continue (y/n)? "
if [ "$REPLY" == "y" ]
then
# Remove remote fully merged branches
git branch
-r --merged master | sed 's/ *origin///'
| grep -v 'master$' | xargs -I% git push origin :%
echo
"Done!"
fi