Voltar

Removendo todos os branches locais de um vez

Quem trabalha com scrum sabe que no final de cada sprint temos localmente todos os branches que foram utilizados que não servem mais. Se por exemplo, você trabalhou em dez tarefas diferentes, você terá dez branches locais. Usando git apenas pelo terminal, remover um por um pode se tornar uma tarefa chata e se  cada um for nomeado por código (por exemplo feature/3035) pode ser pior ainda.

O que queremos fazer é remover todos estes branches que não serão mais utilizados de forma rápida e sem precisar de uma lista com os nomes de cada um para deletar. Podemos resolver isso com o seguinte comando.

git branch | grep -v "master" | xargs git branch -D

Agora vamos entender o que este comando faz passo a passo:

primeiro ele lista todos os branches locais com git branch

Listagem dos branches

Em seguida temos o | (pipe) que pega o resultado do comando anterior e usa como parâmetro para o comando seguinte. O grep busca por strings e padrões,  a flag -v inverte esse resultado, ou seja grep -v ‘master’ procura por tudo que não tenha master no nome.

Listagem de branch que não contenham master no nome

Na sequência temos o xargs, que constrói e executa comandos a partir dos parâmetros passados, como um laço de repetição.

Remoção de vários branches utilizando xargs

Entender o que o comando está fazendo é importante, mas queremos simplificar nossa tarefa, sabendo exatamente o comando que te atende, você pode salva-lo com alias simplificando ainda mais o seu uso.

Compartilhe com sua galera

Comentários