Excluir ramos mesclados

Às vezes, você tem uma lista enorme de ramos mesclados.

git checkout master
git branch
-d $(git branch --merged | sed '/* /d' | sed 's/^..//' | paste -sd " ")

O que isso faz?

tipo git branch --merged

sed '* /d' irá remover o seu ramo

sed 's/^..//' irá remover os dois espaços na frente de cada ramo

paste -sd " " irá colocar todas as linhas em uma linha separada por um único espaço.

git branch -d exclua os ramos.

Nota

git branch --mergedirá realmente listar quaisquer branches que apontam para um commit dentro de seu branch atual. Se você digitar, git branch fooo branch foo fará referência a um commit dentro do branch atual, então o git o marcará como “mesclado”.