Git: Excluir um branch local
Última atualização
Depois que o trabalho de um branch é mesclado, você o exclui com git branch -d <branch>. O Git recusa se o branch tiver commits que não estão mesclados em lugar nenhum - uma verificação de segurança. Para excluí-lo mesmo assim, use o -D maiúsculo. Excluir um branch local nunca afeta a cópia no remoto; esse é um comando separado.
Experimente isto no terminal playground - um shell de verdade no seu navegador, sem nada para instalar.
Sintaxe
| Command | What it does |
|---|---|
git branch -d feature | Exclui feature (apenas se estiver mesclado) |
git branch -D feature | Força a exclusão de feature mesmo se não estiver mesclado |
git branch -d branch1 branch2 | Exclui vários branches de uma vez |
Casos comuns
| Goal | Command |
|---|---|
| Excluir um branch mesclado | git branch -d old-feature |
| Forçar a exclusão de um branch não mesclado | git branch -D scratch |
| Excluir o branch em que você está | git switch main e então git branch -d feature |
| Ver quais branches estão mesclados | git branch --merged |
Exemplo prático
Termine uma funcionalidade, mescle-a e limpe o branch local.
| Step | Command | Result |
|---|---|---|
| 1 | git switch main | Saia do branch que você quer excluir |
| 2 | git merge feature | Traz os commits da funcionalidade para main |
| 3 | git branch -d feature | Exclui o branch agora mesclado |
Perguntas frequentes sobre excluir branch local no Git
Qual é a diferença entre git branch -d e -D?
-d é a exclusão segura: o Git só remove o branch se seus commits já estiverem mesclados em outro branch, então você não perde trabalho por acidente. -D é a exclusão forçada (abreviação de --delete --force): remove o branch de qualquer jeito, mesmo que tenha commits não mesclados. Use -d por padrão e recorra ao -D apenas quando tiver certeza de que quer descartar os commits do branch.Como excluo o branch em que estou atualmente?
Você não pode excluir o branch que está com checkout ativo. Mude primeiro para outro branch com
git switch main (ou git checkout main) e então execute git branch -d feature. Se tentar excluir o branch atual, o Git gera o erro "Cannot delete branch ... checked out".Excluir um branch local também o exclui no GitHub?
Não.
git branch -d só remove o branch do seu repositório local. O branch no remoto (GitHub, GitLab, etc.) permanece até você excluí-lo separadamente com git push origin --delete feature.Posso recuperar um branch que excluí?
Geralmente sim, se foi recente. Execute
git reflog para encontrar o commit para o qual o branch apontava e então recrie-o com git branch feature <commit-hash>. Os commits não são coletados como lixo imediatamente, então um branch excluído por engano normalmente pode ser restaurado.Posso praticar isto online?
Sim. Abra o terminal playground para executar esses comandos em um shell de verdade no seu navegador - sem nada para instalar. Quando quiser estrutura, o curso interativo e gratuito de Git da Coddy leva você do seu primeiro commit até branching e merging passo a passo.