BIBLIOTECA / SNIPPET

git-clean-branches.

git-clean-branches() {
    git fetch -p && git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d
}

alias clb="git-clean-branches"

Depois de um PR mergeado, o branch remoto morre mas o local fica. Isso limpa as refs de tracking (fetch -p), acha os branches locais cujo upstream sumiu, e apaga. Digitado em três letras: clb.

A segurança está no -d minúsculo — o git se recusa a apagar qualquer coisa não mergeada. O pior caso é um aviso de "branch not fully merged", que é exatamente a hora em que você quer ser interrompido.