Excluindo Ramificações Git: Guia Completo (Linha de Comando & Interfaces Gráficas)

Principais Pontos

  • Remover ramificações é uma ação comum em fluxos de trabalho Git.
  • Utilize o comando “git branch -d [nome_da_ramificação]” para eliminar ramificações locais, mas atenção a alterações não integradas.
  • Ferramentas como GitHub Desktop, GitKraken, Tower e Bitbucket possuem seus próprios métodos de exclusão, familiarize-se com cada um deles.

No Git, a criação de ramificações é um processo simples e eficiente, permitindo sua utilização sempre que necessário. No entanto, com a mesma facilidade, acumulam-se ramificações desnecessárias. Assim, como se realiza a exclusão de uma ramificação?

Por que apagar uma ramificação?

Ao aprender a estruturar um projeto com ramificações Git, é comum criar ramificações que posteriormente se mostram desnecessárias. A criação de ramificações é uma operação leve, rápida e com uso eficiente do espaço em disco, o que torna esta prática aceitável.

Muitos fluxos de trabalho de desenvolvimento Git incentivam a criação de ramificações, mesmo para tarefas pequenas. Um exemplo comum é a criação de uma ramificação separada para cada correção de bug.

Assim como criar ramificações, a sua exclusão deve fazer parte do seu cotidiano de trabalho.

Exemplo de Repositório com Ramificações

Os exemplos a seguir utilizam um repositório com a seguinte organização:

Este repositório possui duas ramificações: `main` e `dev`. Cada uma é uma ramificação local com sua correspondente remota no servidor de origem.

É fácil perder o controle das ramificações, por isso, aprenda como listá-las através da linha de comando ou visualizá-las em seu cliente Git preferido.

Excluindo Ramificações via Linha de Comando

A sintaxe básica para excluir uma ramificação é:

 git branch (-d | -D) [-r] <nome_da_ramificação>... 

Como Excluir uma Ramificação Local

A forma mais simples do comando remove uma ramificação local, desde que suas alterações tenham sido integradas:

 git branch -d dev 

Se tudo ocorrer corretamente, uma mensagem de confirmação será exibida:

Não é possível remover a ramificação que está ativa. Se tentar, uma mensagem como a seguinte aparecerá:

Ao tentar excluir uma ramificação local com alterações não integradas e não enviadas, essas alterações serão perdidas. Por padrão, o Git impede a exclusão nestes casos. No exemplo, a ramificação `dev` possui alterações que não foram enviadas para a ramificação remota:

Como a mensagem de erro indica, é possível forçar a exclusão usando a flag `-D`.

Uma ramificação local de rastreamento pode ser removida mesmo que não tenha sido integrada, desde que sua correspondente remota esteja atualizada. O Git ainda exibirá um aviso:

Como Excluir uma Ramificação Remota

A exclusão de uma ramificação remota é distinta. Use o comando `git push` com a flag `-d`, seguido pelo nome do remoto (geralmente `origin`) e o nome da ramificação:

Excluindo Ramificações Locais e Remotas com GitHub Desktop

Diferente do Git via linha de comando, o GitHub Desktop permite apenas a exclusão da ramificação ativa. Para tal, vá ao menu `Branch` (Ramificação), selecione a opção `Delete` (Excluir) e confirme a ação:

O GitHub Desktop não permite a exclusão da ramificação padrão (ex: `main`), mesmo que o Git permita. Se a ramificação padrão estiver ativa, a opção de menu é desabilitada.

Se a ramificação representar uma remota, o GitHub Desktop também oferece a opção de removê-la do remoto:

Excluindo Ramificações com GitKraken

O GitKraken exibe as ramificações locais e remotas na barra lateral esquerda. Cada uma deve ser removida separadamente.

Ao posicionar o cursor sobre o nome da ramificação, clique no menu `Ações da Ramificação` (três pontos verticais) e selecione `Excluir <nome_da_ramificação>`:

Uma mensagem de confirmação avisará que a operação é destrutiva. Confirme com o botão `Excluir`:

Semelhante ao Git via linha de comando, você deve mudar para outra ramificação para excluir a atual. Caso contrário, verá uma mensagem de erro:

Excluindo Ramificações Locais e Remotas com Tower

A exclusão de ramificações com Tower é similar ao GitKraken. O aplicativo exibe as ramificações locais e remotas no painel esquerdo. Clique com o botão direito sobre qualquer ramificação e selecione `Excluir` no menu:

Uma diferença importante é que você pode excluir a ramificação remota juntamente com a local durante a confirmação:

Excluindo uma Ramificação no GitHub

O GitHub é um repositório remoto, logo, as ramificações são remotas por padrão. Ao remover uma ramificação via GitHub, é necessário remover a ramificação local correspondente através de outro método.

Assim como o aplicativo GitHub Desktop, o site do GitHub não permite a exclusão da ramificação padrão. Caso tente, uma mensagem de erro será exibida:

Remover qualquer outra ramificação é simples. Na página de código do repositório, clique no link de ramificações, localize a ramificação desejada e clique no ícone `Excluir ramificação` (lixeira):

Não há verificação de alterações não integradas, o GitHub simplesmente exclui a ramificação imediatamente. Uma vez que representa sempre uma ramificação remota, este comportamento faz sentido.

Após a exclusão, você verá um botão para restaurar a ramificação. No entanto, esta é apenas uma funcionalidade de desfazer. Não confie nela, pois ao atualizar ou sair da página, a opção desaparece!

Excluindo Ramificações Locais e Remotas no Bitbucket

O Bitbucket, similar ao GitHub, não permite excluir a ramificação padrão. O Bitbucket define a ramificação principal nas configurações do repositório. Todas as outras ramificações podem ser excluídas na aba `Filiais`, através do menu `Ações` correspondente:

É possível remover várias ramificações de uma vez, facilitando operações de limpeza:

A Exclusão de Ramificações é Parte do Fluxo de Trabalho Git

As ramificações Git, especialmente com suas versões locais, remotas e de rastreamento, podem complexar seu fluxo de trabalho. No desenvolvimento diário, a criação e exclusão de ramificações locais é uma ação comum e essencial. É importante familiarizar-se com este aspecto central de um fluxo de trabalho Git.

Se lembrar-se de como excluir ramificações for um desafio, considere criar aliases para facilitar o processo.