Artigo original: How to Delete a Git Branch Both Locally and Remotely, escrito por freeCodeCamp.org

Traduzido e adaptado por: Daniel Rosa

Na maioria dos casos, excluir um branch (ramo) do Git é simples. Neste artigo, você aprenderá a excluir um branch local ou remoto.

Versão resumida

// excluir um branch no local
git branch -d nomeDoBranchLocal

// excluir um branch remoto
git push origin --delete nomeDoBranchRemoto

Quando excluir branches

É comum que um repositório do Git tenha diversos branches. Eles são uma ótima maneira de trabalhar com recursos (features) e consertos (fixes) diferentes enquanto isolamos o código novo da base de código principal.

Os repositórios geralmente têm um branch master ou main para a base de código principal. Os desenvolvedores, então, criam outros branches para trabalhar em recursos diferentes.

Ao concluir o trabalho em um recurso, recomenda-se excluir o branch.

Excluir um branch LOCAL

O Git não deixará que você exclua o branch no qual você está trabalhando no momento. Por isso, certifique-se de fazer o checkout para um branch que você NÃO quer excluir. Por exemplo: git checkout master ou git checkout main.

Exclua um branch com o comando git branch -d <branch>.

Exemplo: git branch -d fix/authentication

A opção -d excluirá o branch somente se você já fez o push e o merge com o branch remoto. Use a opção -D em vez disso se quiser forçar a exclusão do branch, mesmo que você ainda não tenha feito o push e o merge com ele.

O branch, agora, foi excluído do local.

Excluir um branch REMOTO

Este é o comando para excluir um branch remoto: git push <remote> --delete <branch>.

Exemplo: git push origin --delete fix/authentication

O branch, agora, foi excluído remotamente.

Também é possível usar um comando menor para excluir um branch remotamente: git push <remote> :<branch>

Exemplo: git push origin :fix/authentication

Se aparecer para você o erro abaixo, isso quer dizer que outra pessoa já excluiu o branch.

error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'

Tente sincronizar sua lista de branches usando:

git fetch -p

A flag -p significa "prune" (remover). Depois de fazer o fetch, os branches que já não existem mais remotamente serão excluídos.

Se você achou este tutorial útil, nossa organização sem fins lucrativos tem mais de 8.000 tutoriais diretos ao ponto, como este. Todos eles são gratuitos e sem comerciais. Compartilhe com seus amigos. 😉