Pular para o conteúdo principal

Git Excluir ramificação: Como remover ramificações locais e remotas

Este guia explica como excluir ramificações no Git, local e remotamente, seguindo as práticas recomendadas para evitar a perda acidental de dados.
Actualizado 13 de mar. de 2025  · 15 min de leitura

Se você é um usuário ativo do Git como eu, provavelmente acumulou uma pilha de ramificações antigas. Alguns se fundiram, outros foram abandonados e outros você nem se lembra de ter criado. Manter esses ramos por perto pode não parecer um grande problema, mas, com o tempo, eles podem bagunçar o seu repositório e dificultar o acompanhamento do trabalho ativo.

Neste guia, explicarei como excluir ramificações do Git local e remotamente, abordando as maneiras mais seguras de fazer isso e as possíveis armadilhas com as quais você deve estar atento.

O que a exclusão de uma ramificação do Git faz?

As ramificações do Git são temporárias por padrão. Eles oferecem a você um espaço para trabalhar em novos recursos, correções de bugs ou experimentos sem interferir na base de código principal. Porém, depois que um galho tiver cumprido sua função, mantê-lo por perto só aumentará a desordem desnecessária. A exclusão de ramificações é o que considero uma boa manutenção para manter seu fluxo de trabalho do Git limpo e gerenciável.

Gostaria de reiterar que "excluir" uma ramificação não é o mesmo que "apagar" seu trabalho. Quando você exclui uma ramificação no Git, não está apagando os commits, apenas a referência a eles. Veja como isso funciona:

  • A exclusão de um branch local remove o branch do seu repositório pessoal. Se qualquer outro ramo ou tag não fizer referência a esses commits, eles poderão ser limpos pela coleta de lixo do Git.
  • A exclusão de um branch remoto remove o branch do repositório compartilhado(por exemplo, GitHub, GitLab, Bitbucket), tornando-o inacessível aos colaboradores. No entanto, todas as cópias locais desse ramo em outros computadores permanecerão até que sejam removidas ou atualizadas manualmente.

Por que excluir um ramo?

A exclusão de uma ramificação é uma boa manutenção, pura e simples. Da mesma forma que é uma boa prática excluir fotos duplicadas, downloads antigos e pastas desatualizadas, há vários bons motivos para excluir uma ramificação quando você terminar de usá-la:

  • Ele mantém seu repositório limpo. O excesso de filiais, especialmente as desatualizadas, dificulta o acompanhamento do trabalho ativo.
  • Isso evita confusão. Se um ramo não for mais relevante, mantê-lo pode causar incerteza sobre se ele ainda está em uso.
  • Melhora a colaboração. Em ambientes de equipe, a exclusão de ramificações de recursos concluídas sinaliza que o trabalho está concluído e evita o trabalho desnecessário em códigos desatualizados.
  • Ele reduz o inchaço do repositório remoto. Os repositórios remotos podem ficar cheios de ramificações obsoletas, tornando mais difícil para você (ou um visualizador) navegar pelo histórico do projeto.

Se você é novo no Git ou precisa configurá-lo antes de gerenciar as ramificações, consulte o tutorial de instalação do Git para obter instruções passo a passo.

Aprenda hoje os fundamentos do Git

Para iniciantes: Controle de versão principal usando o Git.
Comece a aprender de graça

Exclusão de uma ramificação local do Git

Excluir uma ramificação local não é difícil; felizmente, é uma das tarefas mais simples do Git. Vamos analisar a maneira mais segura de fazer isso e os cuidados que você deve ter.

O comando básico para excluir uma filial local

A maneira mais segura de excluir uma ramificação local é com o sinalizador -d:

git branch -d <branch_name>

Lembre-se de que esse comando só funciona se o ramo tiver sido totalmente mesclado ao ramo atual (normalmente main ou master). Se houver alguma alteração não mesclada, o Git interromperá você para evitar a perda acidental de dados.

Forçar a exclusão de uma filial local

Se você tentar excluir um ramo que ainda tenha alterações não mescladas, o Git não permitirá, a menos que você force:

git branch -D <branch_name>

O sinalizador -D (observe as letras maiúsculas) ignora a verificação de segurança e exclui a ramificação imediatamente, independentemente de ela ter sido mesclada ou não. Eu aconselharia você a ter cuidado com isso. Qualquer trabalho não mesclado será perdido, a menos que você tenha um backup ou outra ramificação apontando para os mesmos commits.

Verificação de alterações não mescladas antes da exclusão

Antes de você chegar ao ponto de excluir uma ramificação, é uma boa ideia verificar se ela tem alterações não mescladas. Você pode fazer isso com:

git branch --no-merged

O comando acima lista todas as ramificações que não foram mescladas com a ramificação atual. Se o que você está prestes a excluir aparecer nessa lista, verifique se não precisa de nenhuma das alterações antes de continuar.

Você quer uma referência rápida para os comandos do Git, incluindo a exclusão de ramificações? Faça o download do sitee da prática Git Cheat Sheet.

Exclusão de uma ramificação remota do Git

A exclusão de um ramo remoto é um pouco diferente da exclusão de um ramo local. Como as ramificações remotas existem em repositórios compartilhados, removê-las ajuda a manter as coisas organizadas e evita que ramificações desatualizadas atrapalhem os fluxos de trabalho da equipe.

O comando básico para excluir uma ramificação remota

Para excluir um branch de um repositório remoto como GitHub, GitLab ou Bitbucket, use:

git push origin --delete <branch_name>

Esse comando remove a referência do branch do repositório remoto, tornando-o inacessível para outros. No entanto, as cópias locais da ramificação em outros computadores não serão afetadas e precisarão ser limpas separadamente.

Verificação da exclusão de ramificação remota

Depois de excluir uma ramificação remota, você precisará confirmar que ela realmente desapareceu. Primeiro, busque as atualizações mais recentes no repositório remoto:

git fetch --prune

Com isso, você remove referências desatualizadas de rastreamento remoto. Para verificar novamente se o ramo não está mais listado, execute o seguinte:

git branch -r

O comando acima exibe todas as filiais remotas restantes. Se o ramo excluído ainda aparecer, tente executar outro git fetch --prune ou verifique se o comando de exclusão foi executado no controle remoto correto.

Práticas recomendadas para excluir ramificações do Git

A exclusão de ramificações é uma parte rotineira do trabalho com o Git, mas fazer isso da maneira correta pode evitar que você tenha dores de cabeça desnecessárias. Aqui estão algumas práticas recomendadas para manter seu repositório organizado e evitar possíveis erros.

Evitar a exclusão prematura de ramificações não mescladas

Antes de excluir uma ramificação, certifique-se de que ela não contenha nenhum trabalho não mesclado que ainda seja necessário. Se você não tiver certeza, verifique seu status com:

git branch --no-merged

Se a ramificação tiver alterações importantes que não foram mescladas, considere mesclá-las ou arquivá-las primeiro em vez de excluí-las completamente.

Excluir após a mesclagem

Uma vez que um recurso ou correção tenha sido mesclado à ramificação principal (main ou master), não há motivo para manter a ramificação antiga. A exclusão de ramificações mescladas ajuda a evitar a desordem e facilita a visualização de quais ramificações ainda estão ativas.

Comunique-se com sua equipe

Como cortesia profissional, quando você estiver trabalhando em um projeto colaborativo, evite excluir uma ramificação sem avisar a sua equipe. Isso pode causar confusão - ou pior, atrapalhar o trabalho de outra pessoa. Antes de remover uma ramificação remota, verifique com sua equipe se ninguém ainda a está usando. Prefiro uma simples mensagem ou nota no Slack para evitar frustrações.

Antes de excluir uma ramificação, você pode querer organizar seu histórico de commits eliminando-os. Saiba como em nosso tutorial Git Squash Commits.

Problemas comuns ao excluir ramificações do Git

A exclusão de ramificações no Git geralmente não apresenta problemas, mas há algumas armadilhas comuns que podem atrapalhar você. Veja a seguir o que você deve observar e como lidar com esses problemas caso eles surjam.

Exclusão de uma ramificação que não foi totalmente mesclada

Novamente, se você tentar excluir um ramo que ainda tenha alterações não mescladas usando git branch -d, o Git o interromperá para evitar uma possível perda de dados. Isso é uma segurança contra falhas. Qualquer trabalho não mesclado será perdido se você forçar a exclusão com -D.

Se você já tiver excluído um ramo e perceber que precisa dele de volta, poderá recuperá-lo usando o reflog do Git:

git reflog
git checkout -b <branch_name> <commit_hash>

Isso permite que você restaure o ramo a partir do último commit conhecido, se ele não tiver sido completamente perdido para a coleta de lixo.

Excluindo o ramo atual

O Git não permitirá que você exclua o ramo em que está atualmente, o que faz sentido, caso contrário, você ficaria sem um ramo ativo. Se você vir um erro ao tentar excluir um ramo, mude para outro ramo primeiro:

git checkout main

Ou, se você estiver usando o Git 2.23+:

git switch main

Quando estiver em um ramo diferente, você poderá excluir com segurança o ramo que pretendia remover.

Você precisa alternar entre as ramificações antes de excluir uma? Nosso guia sobre como fazer check-out de uma ramificação remota no Git orienta você durante o processo.

Exclusão acidental de uma ramificação remota

Se uma ramificação remota tiver sido excluída por engano, você poderá restaurá-la (supondo que ainda tenha uma cópia local) fazendo push de volta para a remota:

git push origin <deleted_branch_name>

Isso recria o branch no repositório remoto, restaurando o acesso dos colaboradores. Se não houver uma cópia local, talvez você precise verificar manualmente o histórico de commits e recriar o ramo.

Por que não consigo excluir uma ramificação do Git?

Se você estiver tendo problemas para excluir uma ramificação no Git, reveja os problemas comuns; verifique se ela foi totalmente mesclada, se você está na ramificação no momento ou se é uma ramificação remota. A partir daí, pode ser que você tenha configurações ou permissões.  

  1. A primeira coisa a verificar é se você está atualmente nessa filial. O Git não permitirá que você exclua um ramo no qual esteja trabalhando ativamente, portanto, você precisará mudar para um ramo diferente primeiro. 
  2. Se esse não for o problema, é possível que a ramificação ainda tenha alterações não mescladas. O Git protege as ramificações com trabalho não mesclado, portanto, a menos que você tenha certeza absoluta de que não precisa dessas alterações, será necessário mesclar ou forçar a exclusão da ramificação usando git branch -D branch-name.
  3. Se você estiver tentando excluir uma ramificação remota, um simples git branch -d não resolverá o problema. Em vez disso, você precisará executar git push origin --delete branch-name e, para limpar as referências antigas, poderá usar git fetch --prune
  4. Alguns repositórios, especialmente aqueles hospedados em plataformas como GitHub ou GitLab, têm ramificações protegidas que não podem ser excluídas sem que você altere as configurações. Se estiver trabalhando em um repositório compartilhado, você também poderá precisar das permissões corretas para excluir branches.

Você ainda está preso? A execução do site git branch -v pode fornecer mais detalhes sobre o status do ramo e ajudar você a descobrir o que está acontecendo antes de tentar novamente.

Automatizando a limpeza de ramificações com o Git

Eu adoro uma boa automação. Embora a exclusão manual de ramificações funcione bem e você deva saber como fazê-la, há outra maneira. Se você estiver lidando com muitas ramificações (como em uma configuração de equipe), a automação pode economizar tempo e manter as coisas mais organizadas. O Git oferece algumas maneiras de simplificar a limpeza de ramificações, reduzindo a desordem sem esforço extra.

Automatize a limpeza de filiais remotas

Quando uma ramificação remota é excluída, seu Git local ainda mantém uma referência a ela até que você atualize as coisas manualmente. Em vez de limpá-los um a um, você pode usar:

git fetch --prune

O comando acima remove automaticamente as referências locais a ramificações que não existem mais no repositório remoto, mantendo tudo em sincronia. Ao executar isso regularmente, você evita que ramificações desatualizadas se acumulem em seu repositório local.

Use os ganchos do Git para limpeza

Para equipes ou projetos maiores, os ganchos do Git podem ajudar a automatizar a limpeza de ramificações. Hooks são scripts personalizados que são executados em determinados pontos do fluxo de trabalho do Git, como depois de mesclar uma ramificação. Você pode configurar um gancho pós-fusão para excluir automaticamente as ramificações mescladas após um período definido, garantindo que as ramificações antigas não permaneçam desnecessariamente.

Conclusão

As ramificações podem ficar bagunçadas com o tempo, mas um pouco de "corte" ajuda a manter o repositório limpo e o fluxo de trabalho eficiente. Ao criar o hábito de excluir ramificações mescladas, verificar novamente as não mescladas e manter a comunicação aberta em projetos de equipe, você pode evitar esses problemas. E se você quiser ir além, ferramentas de automação como git fetch --prune e Git hooks podem ajudar a manter seu repositório limpo sem esforço extra.

A exclusão de ramificações é apenas uma etapa para você dominar o Git. Para aprofundar seu conhecimento sobre controle de versão, confira o curso Intermediate Git. Se você estiver trabalhando com repositórios do GitHub, é essencial ter uma sólida compreensão dos principais conceitos do GitHub. Saiba mais no curso Introdução aos conceitos do GitHub!

Aprenda hoje os fundamentos do Git

Para iniciantes: Controle de versão principal usando o Git.

Perguntas frequentes

A exclusão de uma ramificação no Git pode afetar meu código de produção?

Não, a exclusão de uma ramificação não afeta o código de produção, desde que a ramificação já tenha sido mesclada à sua ramificação principal (main ou master). No entanto, se você excluir uma ramificação com alterações não mescladas, qualquer trabalho que não tenha sido incorporado a outra ramificação será perdido. Sempre verifique o status da mesclagem antes de excluir.

Como posso evitar que minha equipe exclua acidentalmente ramificações importantes?

Se estiver trabalhando em um repositório compartilhado (GitHub, GitLab, etc.), você poderá proteger ramificações críticas como main e develop definindo regras de proteção de ramificação. Isso ajuda a evitar exclusões acidentais e forçamentos não autorizados. Para repositórios locais, considere o uso de convenções de nomenclatura (por exemplo, prefixar ramificações ativas com wip- para trabalho em andamento) para indicar quais ainda não devem ser removidas.

Você tem como rastrear quem excluiu uma ramificação remota do Git?

Sim, em repositórios hospedados no GitHub, GitLab ou Bitbucket, as exclusões de ramificações geralmente são registradas no feed de atividades. Você pode verificar a auditoria do seu repositório logs ou o histórico de commits para ver quem excluiu um branch e quando. Para repositórios Git auto-hospedados, talvez você precise configurar ganchos no lado do servidor para rastrear as exclusões manualmente.

Como faço para recuperar uma ramificação excluída do Git se fechei meu terminal?

Se você excluiu um ramo e não fechou o terminal, poderá desfazê-lo com:

git checkout -b

Mas se você já fechou o terminal, a melhor opção é usar git reflog.

Isso mostrará um histórico de ações recentes, incluindo exclusões de ramificações. Encontre o hash do último commit do ramo excluído e use-o para recriar o ramo. No entanto, se o ramo foi excluído remotamente e localmente e ninguém mais tiver uma cópia, a recuperação pode não ser possível.

Qual é a diferença entre `git branch -d` e `git branch -D` no uso real?

  • git branch -d - Exclusão segura. Ele impedirá a exclusão se o ramo tiver alterações não mescladas, atuando como uma rede de segurança.
  • git branch -D - Forçar a exclusão. Ele não se importa se o ramo tem alterações não mescladas - ele o removerá imediatamente.

Em um cenário do mundo real, você usaria -d na maior parte do tempo para evitar perder trabalho por acidente. Use -D somente quando você tiver 100% de certeza de que o conteúdo da ramificação não é mais necessário.


Ashlyn Brooks's photo
Author
Ashlyn Brooks

Ashlyn Brooks é redatora técnica especializada em plataformas de nuvem (Azure, AWS), documentação de API e infraestrutura de dados. Com mais de sete anos de experiência, ela se destaca na tradução de conceitos complexos em conteúdo claro e fácil de usar que aprimora a experiência do desenvolvedor e a adoção do produto.

Temas

Saiba mais sobre o Git com estes cursos!

Curso

Introduction to Git

2 hr
16.3K
Discover the fundamentals of Git for version control in your software and data projects.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado
Git

blog

O que é Git? Manual completo do Git

Saiba mais sobre o sistema de controle de versão mais conhecido e por que é uma ferramenta de colaboração indispensável para cientistas de dados e programadores.
Summer Worsley's photo

Summer Worsley

14 min

Tutorial

Git Rename Branch: Como renomear uma filial local ou remota

Saiba como renomear ramificações locais e remotas do Git usando o terminal ou a interface gráfica do usuário (GUI) de clientes populares como o GitHub.

Tutorial

Git Pull Force: Como substituir uma ramificação local por uma remota

Saiba por que o git pull --force não é a melhor maneira de substituir uma ramificação local pela versão remota e descubra o método adequado usando git fetch e git reset.

Tutorial

Git Prune: O que é o Git Pruning e como usar o Git Prune

O Git prune é um comando do Git que remove objetos do repositório que não são mais acessíveis a partir de qualquer commit ou branch, ajudando a liberar espaço em disco.

Tutorial

Tutorial de push e pull do GIT

Saiba como realizar solicitações Git PUSH e PULL por meio do GitHub Desktop e da linha de comando.

Olivia Smith

13 min

Tutorial

Tutorial do GitHub e do Git para iniciantes

Um tutorial para iniciantes que demonstra como funciona o controle de versão do Git e por que ele é crucial para projetos de ciência de dados.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Ver maisVer mais