Voltar
Como excluir todas as branches locais, exceto a atual?
Seria bom fazer uma limpa em tantas branches/ramificações baixadas no seu repositório local, certo? Vamos aprender a fazer isso.
Se você fizer um git branch
no seu repositório local poderá ver várias branches que está trabalhando ou que já trabalhou. Depois de um tempo você irá acumular muitas delas que nem usa mais, então vamos aprender a fazer uma limpa.
O comando "mágico"
Sem enrolação, abra o Git Bash (o terminal do Git). Se sua branche principal for de nome master
e não quiser preservar nenhuma outra, você já pode executar o seguinte comando:
Atenção
Use esse comando com cuidado! Ele apaga branches locais de forma irreversível. Se você tiver alterações não commitadas ou branches que não foram "mergeadas", elas serão perdidas.
Se sua branch principal e/ou de trabalho tiver outro nome, altera de master
para outro nome que você utilize.
Pronto! Isso já irá fazer uma limpa no seu repositório local. Caso queira entender melhor o comando ou mais algumas dicas de uso, vamos nos aprofundar mais.
Entendendo o comando
Comando completo:
1. git branch
Esse comando lista todas as branches locais no repositório. Por exemplo:
O asterisco (*) indica a branch atual.
2. | grep -v "master"
O |
é o operador pipe, que direciona a saída do comando anterior (git branch
) para o próximo comando (grep
).
O comando grep -v "master"
filtra as linhas excluindo aquelas que contêm a palavra "master".
Por exemplo, se a saída de git branch fosse:
Após passar por grep -v "master"
, sobraria:
3. | xargs git branch -D
O comando xargs
pega as linhas da entrada (filtradas pelo grep
) e as transforma em argumentos para o comando que segue (git branch -D
).
git branch -D <nome_da_branch>
: Apaga a branch localmente, mesmo que ela não tenha sido integrada ou esteja desatualizada (é uma deleção forçada).
Por exemplo, se a saída do grep
foi:
O xargs
transforma isso no equivalente a executar:
Fluxo geral:
git branch
lista as branches locais.grep -v "master"
remove a branchmaster
da lista.xargs git branch -D
apaga todas as branches restantes, exceto amaster
.
Extra
Para manter a sua branch atual (vai que você já está utilizando ela), ela vai vir com um * na frente do nome, então você pode ajustar o seguinte trecho no código:
Para manter mais de uma branch, você pode usar:
E caso você utilize PowerShell, não precisa do comando acima! Fique na branch que você quer manter e execute:
Isso é tudo! Espero ter ajudado! 😊