Introducción
Las sucursales son parte del proceso de desarrollo diario y una de las características más poderosas de Git. Una vez que se fusiona una rama, no sirve de nada excepto para la investigación histórica. Es una práctica común y recomendada eliminar la rama después de una combinación exitosa.
Esta guía explica cómo eliminar ramas de Git locales y remotas.
Eliminar una rama de Git local
Para eliminar una rama de Git local, use el git branch
con la -d
( --delete
):
git branch -d branch_name
Deleted branch branch_name (was 17d9aa0).
Si intenta eliminar una rama que contiene cambios que aún no se han combinado, se mostrará el siguiente mensaje de error:
error: The branch 'branch_name' is not fully merged.
If you are sure you want to delete it, run 'git branch -D branch_name'.
Como dice el mensaje anterior, puede forzar la eliminación usando la -D
, que es un atajo para --delete --force
:
git branch -D branch_name
Tenga en cuenta que si elimina una rama no fusionada, perderá todos los cambios en esa rama.
Para enumerar todas las ramas que contienen cambios no fusionados, use el comando git branch --no-merged
Si intenta eliminar la rama actual, se mostrará el siguiente mensaje:
error: Cannot delete branch 'branch_name' checked out at '/path/to/repository'
No puede eliminar la sucursal en la que se encuentra actualmente. Primero, cambie a otra rama y luego elimine branch_name
:
git checkout master
git branch -d branch_name
Eliminar una rama de Git remota
En Git, las ramas locales y remotas son objetos separados. Eliminar una rama local no elimina la rama remota.
Para eliminar una rama remota, use el git push
con la -d
( --delete
):
git push remote_name --delete branch_name
Donde remote_name
suele ser origin
:
git push origin --delete branch_name
...
- [deleted] branch_name
También hay un comando alternativo para eliminar una rama remota, que es más difícil de recordar:
git push origin remote_name:branch_name
Si está trabajando en un proyecto con un grupo de personas e intenta eliminar una rama remota que ya ha sido eliminada por otra persona, recibirá el siguiente mensaje de error:
error: unable to push to unqualified destination: branch_name 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 '[email protected]:/my_repo'
En situaciones como esta, necesitará sincronizar su lista de sucursales con:
git fetch -p
La -p
le dice a Git que elimine cualquier referencia de seguimiento remoto que ya no exista en el repositorio remoto antes de buscar.
Conclusión
En este tutorial, aprendió cómo eliminar ramas de Git locales y remotas. Las sucursales son básicamente una referencia a una instantánea de los cambios y tienen un ciclo de vida corto. Una vez que la rama se fusiona con el maestro (u otra rama principal), ya no es necesaria y debe eliminarse.