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.
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á dominando o git, há uma boa chance de você criar um branch e então decidir que não precisava. 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.
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.
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] primeiro commit
2 * main 1ae41e8 [origin / main] primeiro 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 é:
branch git (-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:
erro: Não é possível excluir branch 'principal' com check-out em '/ tmp / sandbox'
Quando tudo der certo, você verá uma mensagem de confirmação:
Deletada ramificação dev (era 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:
erro: o branch ‘dev’ não foi totalmente mesclado.
Se você tem certeza de que deseja excluí-lo, execute '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:
aviso: excluindo branch ‘dev’ que foi mesclado com
'refs / remotes / origin / dev', mas ainda não mesclado com HEAD.
Deletada ramificação dev (era 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
Para github.com: bobbykjack / sandbox.git
- [excluído] 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
GitKraken exibe os branches locais e remotos do seu repositório na barra lateral esquerda. Você deve deletar cada separadamente.
Passe o mouse sobre o nome da filial apropriada e clique no 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 é apenas 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 de 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.
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.
- Programação
- GitHub
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.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.