Como Excluir um Branch no Git Localmente e Remotamente

Como Excluir um Branch no Git Localmente e Remotamente

Uma das características mais fortes do Git são seus branches leves. Eles permitem que você trabalhe em estágios paralelos de desenvolvimento com eficiência. Um desenvolvedor pode até criar branches individuais para bugs separados. Tanto no tempo quanto no espaço, os ramos quase não têm custo.





O pokémon sol e lua vale a pena

Muitos fluxos de trabalho git lidam com branches de longo prazo e temporários. Portanto, geralmente é necessário excluir ramificações durante o desenvolvimento. Ocasionalmente, é necessário excluir branches compartilhados de um servidor remoto, bem como branches locais.





Por que excluir uma filial?

Primeiro, se você ainda está se familiarizando com o git, há uma boa chance de você criar um branch e então decidir que não precisa. Ou você pode estar experimentando galhos e querendo limpar depois de você mesmo. Isso é bom, pois ramificar no git é uma operação leve. É muito rápido e usa o espaço em disco de forma eficiente.





Como resultado, muitos fluxos de trabalho de desenvolvimento git encorajam ramificações, mesmo para tarefas muito pequenas ou curtas. Por exemplo, uma estratégia comum é criar uma filial para uma única correção de bug. Isso é verdade mesmo que envolva apenas um único autor fazendo uma alteração de uma linha em um único arquivo.

Por esses motivos, criar e excluir ramificações são operações que precisam ser bem compreendidas. Você pode acabar excluindo ramificações durante um fluxo de trabalho de desenvolvimento típico.



Um repositório de amostra com ramificações

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

$ git branch -vv
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

Observe que cada branch local tem um branch upstream correspondente do remoto: origem .





Excluindo uma ramificação usando a linha de comando

A sintaxe de comando básica para excluir um branch é:

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

A forma mais simples do comando exclui um branch local, desde que todas as suas alterações tenham sido mescladas:





$ git branch -d dev

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

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

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

Deleted branch dev (was 1ae41e8).

Se você excluir um branch que existe apenas localmente, com alterações não mescladas, você perderá essas alterações. Portanto, o git se recusará a excluir um branch em tal situação, por padrão:

error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev’.

Conforme informa a mensagem de erro, você pode forçar a exclusão com o -D bandeira. No entanto, o git permitirá que você exclua um branch local não mesclado se ele existir remotamente:

warning: deleting branch ‘dev’ that has been merged to
'refs/remotes/origin/dev’, but not yet merged to HEAD.
Deleted branch dev (was 9a6d20b).

Excluir um branch remoto é bem diferente. Você vai usar o git push comando junto com o -d sinalizar para excluir. Depois disso, forneça o nome do controle remoto (muitas vezes origem ) e o nome da filial:

$ git push -d origin dev
To github.com:bobbykjack/sandbox.git
- [deleted] dev

Excluindo ramificações 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 por meio do Filial menu, selecionando o Excluir opção e confirmando-a:

O GitHub Desktop não permite que você exclua o branch padrão, por exemplo, main — embora o próprio git suporte isso. Se o branch padrão for aquele que está ativo no momento, o aplicativo desativa a ação do menu.

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

Excluindo ramificações usando GitKraken

GitCrack exibe os branches locais e remotos do seu repositório na barra lateral esquerda. Você deve deletar cadaseparadamente.

Passe o mouse sobre o nome da filial apropriada e clique no botão Filial menu de ações 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 Excluir botão:

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

Excluindo ramificações locais e remotas usando o Tower

Excluindo uma filial com Torre é muito semelhante a excluir um branch com o GitKraken. As ramificações locais e remotas são mostradas em um painel do lado esquerdo. Clique com o botão direito em qualquer ramificação e selecione a opção Excluir no menu de contexto:

Uma diferença importante é que um branch remoto pode ser excluído junto com seu branch local, durante a confirmação:

Excluindo um Branch no GitHub

O GitHub atua apenas como uma fonte remota, portanto, os branches lá são remotos por padrão. Se você excluir um branch usando o site do GitHub, terá que excluir o branch local correspondente usando um dos outros métodos aqui.

Assim como acontece com o aplicativo GitHub Desktop, o site do GitHub não permitirá que você exclua o branch padrão. A opção simplesmente não aparece. Excluir um branch é simples, no entanto. Do repositório Código página, clique no galhos link, localize a filial a ser excluída e clique no Exclua este ramo ícone, que se parece com uma lata de lixo:

Esteja ciente de que não há verificações para alterações não mescladas, portanto, no GitHub, o branch será simplesmente excluído imediatamente. No entanto, como ele sempre representará um branch remoto, esse deve ser o comportamento que você está esperando.

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

Excluindo Ramificações Locais e Remotas no Bitbucket

O Bitbucket, como o GitHub, não permitirá que você exclua o branch padrão. Bitbucket chama isso de Filial principal no Configurações do repositório . Você pode excluir qualquer outro ramo listado no Galhos guia, por meio de seu correspondente Ações cardápio:

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 ramos faz parte de um fluxo de trabalho típico do Git

Ramificações Git podem complicar seu fluxo de trabalho, especialmente com branches locais, remotos e de rastreamento. Mas, para um desenvolvimento diário simples, é provável que você crie e exclua branches locais o tempo todo. Este é um aspecto central de um fluxo de trabalho git típico ao qual você deve se acostumar.

Compartilhado Compartilhado Tweet O email Como usar ramificações do Git para estruturar seu projeto de programação

Neste artigo, veremos o que significa ramificar seu código, como fazê-lo e maneiras de gerenciar atualizações para o branch 'principal' do git.

Leia a seguir
Tópicos relacionados
  • Programação
  • GitHub
Sobre o autor Bobby Jack(58 artigos publicados)

Bobby é um entusiasta da tecnologia que trabalhou como desenvolvedor de software por quase duas décadas. Ele é apaixonado por jogos, trabalha como Editor de Críticas na Switch Player Magazine e está imerso em todos os aspectos da publicação online e desenvolvimento web.

Mais de Bobby Jack

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever