Original article: How to Delete a Git Branch Both Locally and Remotely

En la mayoría de los casos, es muy simple el borrar una branch de Git. Ahora aprenderás en este artículo como borrar ambas branches, tanto la local como la remota.

Versión TL;DR

// para borrar la branch local
git branch -d localBranchName

// para borrar la branch remota
git push origin --delete remoteBranchName

Cuando borrar branches

Es común tener diferentes branches en un repositorio Git. Son una gran forma de trabajar con diferentes funcionalidades y correcciones mientras el código nuevo se mantiene aislado del código base existente.

Los repositorios frecuentemente tienen una branch  main para el código principal y los desarrolladores crean diferentes branches para trabajar en diferentes funcionalidades.

Cuando el trabajo de una nueva funcionalidad se completa, frecuentemente se recomienda eliminar la branch asociada a esta funcionalidad.

Borrar una branch LOCAL

Git no te permitirá borrar una branch en la que te encuentres ubicado, así que debes asegurarte primero de hacer checkout a una branch que no estes intentando borrar. Por ejemplo: git checkout main

Borra una branch local con git branch -d <branch>.

Por ejemplo: git branch -d fix/authentication

La opción -d eliminará la branch únicamente si esta ha sido empujada y fusionada con la branch remota. Utiliza -D si deseas forzar la eliminación de una branch, incluso si aún esta no ha sido empujada o fusionada aún.

La branch ya esta borrada localmente.

Borrar una branch REMOTA

Este es el comando para borrar una branch remota: git push <remote> --delete <branch>.

Por ejemplo: git push origin --delete fix/authentication

La branch ya esta eliminada de forma remota.

También puedes utilizar este comando corto para borrar una branch remota: git push <remote> :<branch>

Por ejemplo: git push origin :fix/authentication

Si aparece el siguiente error, esto quiere decir que alguien mas ya ha borrado previamente la 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'

Intenta sincronizar tu lista de branches utilizando:

git fetch -p

La flag -p significa "prune". Después de hacer el fetching, las branches que ya no existan en el repositorio remoto serán eliminadas en el repositorio local.