Como excluir uma ramificação no Git local e remotamente

Principais conclusões

  • A exclusão de ramificações é uma parte importante de um fluxo de trabalho típico do Git.
  • Você pode excluir uma ramificação local usando o comando “git branch -d [branchname]”, mas tenha cuidado com alterações não mescladas.
  • Diferentes ferramentas como GitHub Desktop, GitKraken, Tower e Bitbucket têm seus próprios métodos para excluir ramificações, portanto, familiarize-se com o processo específico de cada ferramenta.

Os ramos do Git são tão leves que é fácil criá-los sempre que necessário. Mas também é fácil acabar com sobras de galhos que você não precisa mais. Então, o que está envolvido na exclusão de um branch?

Por que excluir uma filial?

Primeiro, se você ainda está aprendendo como estruturar um projeto usando ramificações git, há uma boa chance de você criar uma ramificação e decidir que não é necessário. Isso é bom, pois a ramificação é uma operação leve; é muito rápido e utiliza o espaço em disco de forma eficiente.

Como resultado, muitos fluxos de trabalho de desenvolvimento git incentivam a ramificação, mesmo para tarefas muito pequenas ou curtas. Por exemplo, uma estratégia comum é criar um branch separado para cada correção de bug.

  Eleve sua experiência de áudio com ofertas irresistíveis da Black Friday de 1MORE

A exclusão de ramificações deve fazer parte do seu fluxo de trabalho diário tanto quanto criá-las.

Um repositório de amostra com ramificações

Os exemplos abaixo referem-se a um repositório de amostra com a seguinte estrutura:

Observe que o repositório possui dois ramos: main e dev. Cada uma dessas ramificações locais é uma ramificação de rastreamento, com uma ramificação upstream correspondente em um servidor remoto (origem).

É fácil perder o controle das ramificações, portanto, saiba como listar as ramificações do git na linha de comando ou visualizá-las em seu cliente preferido.

Excluindo uma ramificação usando a linha de comando

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

 git branch (-d | -D) [-r] <branchname>... 

Como excluir uma filial local

A forma mais simples do comando exclui uma ramificação local, desde que todas as suas alterações tenham sido mescladas:

 git branch -d dev 

Quando tudo der certo, você verá uma mensagem de confirmação:

Você não pode excluir o branch que está ativo no momento; se você tentar fazer isso, receberá uma mensagem como esta:

Se você excluir uma ramificação local com alterações não mescladas e não enviadas, você perderá essas alterações. Portanto, o git se recusará a excluir tal branch por padrão. Neste exemplo, dev desmembrou alterações que não foram enviadas para o branch remoto:

Como diz a mensagem de erro, você pode forçar a exclusão com o sinalizador -D.

Você pode excluir uma ramificação de rastreamento local se a ramificação remota correspondente estiver atualizada, mesmo que não tenha sido mesclada. O Git ainda mostrará um aviso, então você estará ciente do que aconteceu:

Como excluir uma filial remota

Excluir uma filial remota é bem diferente. Você usará o comando git push junto com o sinalizador -d para excluir. Depois disso, forneça o nome do controle remoto (geralmente origem) e o nome da filial:

  Como emular Do-While Loops em Python

Excluindo filiais locais e remotas com GitHub Desktop

Ao contrário do programa git de linha de comando, Aplicativo de desktop do GitHub só permitirá que você exclua o branch ativo. Você pode realizar esta ação através do menu Filial, selecionando a opção Excluir e confirmando:

O GitHub Desktop não permitirá que você exclua o branch padrão – por exemplo, main – mesmo que o próprio git suporte isso. Se a ramificação padrão for aquela que está ativa no momento, o aplicativo desabilita a ação do menu.

Se o branch também representar um branch remoto, o GitHub Desktop também oferece a opção de excluí-lo do controle remoto:

Excluindo ramificações usando GitKraken

Git Kraken exibe as ramificações locais e remotas do seu repositório na barra lateral esquerda. Você deve excluir cada um separadamente.

Passe o mouse sobre o nome do branch apropriado e clique no menu Ações do branch, que se parece com três pontos verticais. No menu, selecione Excluir :

Você verá uma mensagem de confirmação informando que esta é uma operação destrutiva. Você pode confirmar que deseja continuar com o botão Excluir:

Refletindo o comportamento padrão do programa de linha de comando git, você deve primeiro mudar para um branch diferente daquele que você está excluindo. Caso contrário, você verá uma mensagem de erro:

Excluindo filiais locais e remotas usando Tower

Excluindo uma ramificação com Torre é muito semelhante a excluir um branch com GitKraken. O aplicativo exibe filiais locais e remotas em um painel no lado esquerdo. Clique com o botão direito em qualquer ramificação e selecione a opção Excluir no menu de contexto:

  8 Soluções Compre agora e pague depois (BNPL) para expandir seus negócios

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

Excluindo uma ramificação no GitHub

O GitHub atua apenas como uma fonte remota, portanto, as ramificações são remotas por padrão. Se você excluir uma ramificação usando o site do GitHub, terá que excluir a ramificação local correspondente usando um dos outros métodos aqui.

Tal como acontece com o aplicativo GitHub Desktop, o site GitHub não permitirá que você exclua o branch padrão. Se você tentar, verá uma mensagem de erro:

Excluir qualquer outra ramificação, entretanto, é simples. Na página de código do repositório, clique no link de ramificações, localize a ramificação a ser excluída e clique no ícone Excluir ramificação, que se parece com uma lata de lixo:

Esteja ciente de que não há verificações para alterações não mescladas, então o GitHub simplesmente excluirá o branch imediatamente. Porém, como sempre representará uma ramificação remota, esse comportamento deve fazer sentido.

Observe que, após a exclusão, você verá um botão para restaurar a ramificação. No entanto, este é simplesmente um recurso de desfazer útil, caso você clique acidentalmente no ícone de exclusão. Não confie nisso, pois assim que você atualizar ou sair da página, perderá a opção!

Excluindo filiais locais e remotas no Bitbucket

O Bitbucket, assim como o GitHub, não permitirá que você exclua o branch padrão. O Bitbucket chama isso de branch principal nas configurações do repositório. Você pode excluir qualquer outra ramificação listada na guia Filiais, por meio do menu Ações correspondente:

Você também pode excluir mais de um branch de uma vez se estiver fazendo uma grande operação de limpeza:

A exclusão de ramificações faz parte de um fluxo de trabalho típico do Git

As ramificações do Git podem complicar seu fluxo de trabalho, especialmente aquelas com ramificações locais, remotas e de rastreamento. Mas para um desenvolvimento simples do dia a dia, é provável que você crie e exclua filiais locais o tempo todo. Este é um aspecto central de um fluxo de trabalho git típico com o qual você deve se acostumar.

Se você achar difícil lembrar exatamente como excluir uma ramificação, considere configurar aliases para remover ramificações e simplificar o processo.