Saltar al contenido principal

Git Eliminar rama: Cómo eliminar ramas locales y remotas

Esta guía explica cómo eliminar ramas en Git -local y remotamente- siguiendo las mejores prácticas para evitar la pérdida accidental de datos.
Actualizado 13 mar 2025  · 15 min de lectura

Si eres un usuario activo de Git como yo, probablemente hayas acumulado un montón de ramas antiguas. Algunas se fusionaron, otras se abandonaron y otras ni siquiera recuerdas haberlas creado. Mantener esas ramas puede no parecer un gran problema, pero con el tiempo, pueden desordenar tu repositorio y dificultar el seguimiento del trabajo activo.

En esta guía, te explicaré cómo eliminar ramas Git local y remotamente, cubriendo las formas más seguras de hacerlo y las posibles trampas con las que hay que tener cuidado.

¿Qué hace eliminar una rama Git?

Las ramas Git son temporales por diseño. Te dan un espacio para trabajar en nuevas funciones, correcciones de errores o experimentos sin interferir con el código base principal. Pero una vez que una rama ha cumplido su función, conservarla sólo añade un desorden innecesario. Eliminar ramas es lo que considero una buena limpieza para mantener tu flujo de trabajo Git limpio y manejable.

Me gustaría reiterar que "borrar" una rama no es lo mismo que "borrar" tu trabajo. Cuando eliminas una rama en Git, no estás borrando los commits, sólo la referencia a ellos. Funciona así:

  • Borrar una rama local elimina la rama de tu repositorio personal. Si alguna otra rama o etiqueta no hace referencia a esos commits, puede que con el tiempo sean limpiados por la recolección de basura de Git.
  • Borrar una rama remota elimina la rama del repositorio compartido(por ejemplo, GitHub, GitLab, Bitbucket), haciéndola inaccesible para los colaboradores. Sin embargo, cualquier copia local de esa rama en otras máquinas permanecerá hasta que se elimine o actualice manualmente.

¿Por qué eliminar una rama?

Borrar una rama es, simple y llanamente, una buena gestión. Del mismo modo que es una buena práctica eliminar fotos duplicadas, descargas antiguas y carpetas obsoletas, hay varias buenas razones para eliminar una rama una vez que hayas terminado con ella:

  • Mantiene limpio tu repositorio. Demasiadas sucursales, sobre todo obsoletas, dificultan el seguimiento del trabajo activo.
  • Evita la confusión. Si una rama ya no es relevante, mantenerla puede causar incertidumbre sobre si sigue en uso.
  • Mejora la colaboración. En los entornos de equipo, eliminar las ramas de características completadas indica que el trabajo está hecho y evita el trabajo innecesario en código obsoleto.
  • Reduce la hinchazón del repositorio remoto. Los repositorios remotos pueden llenarse de ramas obsoletas, dificultándote a ti (o a un observador) la navegación por el historial del proyecto.

Si eres nuevo en Git o necesitas configurarlo antes de gestionar ramas, consulta el tutorial de instalación de Git para obtener instrucciones paso a paso.

Aprende hoy los fundamentos de Git

Para principiantes: Control de versiones maestro mediante Git.
Empieza a aprender gratis

Eliminar una rama Git local

Eliminar una rama local no es difícil; por suerte, es una de las tareas más sencillas de Git. Repasemos la forma más segura de hacerlo y lo que hay que tener en cuenta.

El comando básico para eliminar una rama local

La forma más segura de eliminar una rama local es con la bandera -d:

git branch -d <branch_name>

Ten en cuenta que este comando sólo funciona si la rama se ha fusionado completamente con la rama actual (normalmente main o master). Si hay algún cambio no realizado, Git lo detendrá para evitar la pérdida accidental de datos.

Forzar la eliminación de una rama local

Si intentas borrar una rama que aún tiene cambios sin fusionar, Git no te lo permitirá a menos que lo fuerces:

git branch -D <branch_name>

La bandera -D (fíjate en las mayúsculas) se salta la comprobación de seguridad y borra la rama inmediatamente, se haya fusionado o no. Te aconsejo que tengas cuidado con esto. Cualquier trabajo no fusionado se perderá a menos que tengas una copia de seguridad u otra rama que apunte a los mismos commits.

Comprobación de cambios no ocultos antes de la eliminación

Antes de llegar al punto de eliminar una rama, es una buena idea comprobar si tiene cambios sin fusionar. Puedes hacerlo con:

git branch --no-merged

El comando anterior lista todas las ramas que no se han fusionado con la rama actual. Si el que vas a eliminar aparece en esta lista, comprueba que no necesitas ninguno de sus cambios antes de continuar.

¿Quieres una referencia rápida para los comandos de Git, incluida la eliminación de ramas? Descargae handy Git Cheat Sheet.

Eliminar una rama Git remota

Borrar una rama remota es un poco diferente de borrar una local. Dado que las ramas remotas existen en repositorios compartidos, eliminarlas ayuda a mantener las cosas organizadas y evita que ramas obsoletas enturbien los flujos de trabajo del equipo.

El comando básico para eliminar una rama remota

Para eliminar una rama de un repositorio remoto como GitHub, GitLab o Bitbucket, utiliza

git push origin --delete <branch_name>

Este comando elimina la referencia a la rama del repositorio remoto, haciéndola inaccesible para los demás. Sin embargo, las copias locales de la rama en otras máquinas no se verán afectadas, sino que tendrán que limpiarse por separado.

Verificar la eliminación remota de la rama

Después de eliminar una rama remota, tendrás que confirmar que realmente ha desaparecido. Primero, busca las últimas actualizaciones del repositorio remoto:

git fetch --prune

Así se eliminan las referencias de seguimiento a distancia obsoletas. Para volver a comprobar que la rama ya no aparece en la lista, ejecuta lo siguiente:

git branch -r

El comando anterior muestra todas las ramas remotas restantes. Si la rama eliminada sigue apareciendo, intenta ejecutar otro git fetch --prune o asegúrate de que el comando de eliminación se ejecutó en la remota correcta.

Buenas prácticas para eliminar ramas Git

Eliminar ramas es una parte rutinaria del trabajo con Git, pero hacerlo correctamente puede ahorrarte dolores de cabeza innecesarios. Aquí tienes algunas buenas prácticas para mantener tu repositorio organizado y evitar posibles errores.

Evita borrar prematuramente las ramas no fusionadas

Antes de eliminar una rama, asegúrate de que no contiene ningún trabajo no fusionado que aún sea necesario. Si no estás seguro, comprueba su estado con:

git branch --no-merged

Si la rama tiene cambios valiosos que no se han fusionado, considera la posibilidad de fusionarlos o archivarlos primero en lugar de eliminarlos directamente.

Borrar después de fusionar

Una vez que una función o corrección se ha incorporado a la rama principal (main o master), no hay razón para mantener la rama antigua. Eliminar las ramas fusionadas ayuda a evitar el desorden y facilita ver qué ramas siguen activas.

Comunícate con tu equipo

Como cortesía profesional, cuando trabajes en un proyecto colaborativo, evita eliminar una rama sin avisar a tu equipo. Puede causar confusión o, peor aún, interrumpir el trabajo de otra persona. Antes de eliminar una rama remota, comprueba con tu equipo que nadie sigue utilizándola. Prefiero un simple mensaje o nota de Slack para evitar frustraciones.

Antes de eliminar una rama, puede que quieras ordenar tu historial de confirmaciones aplastando confirmaciones. Aprende cómo en nuestro tutorial Git Squash Commits.

Problemas comunes al eliminar ramas Git

Borrar ramas en Git no suele dar problemas, pero hay algunos escollos comunes que pueden hacerte tropezar. Esto es lo que hay que tener en cuenta y cómo manejar estos problemas si surgen.

Eliminar una rama que no está totalmente fusionada

De nuevo, si intentas borrar una rama que aún tiene cambios sin fusionar utilizando git branch -d, Git te detendrá para evitar posibles pérdidas de datos. Esto es a prueba de fallos. Cualquier trabajo no fusionado se perderá si lo borras a la fuerza con -D.

Si ya has borrado una rama y te das cuenta de que la necesitas de nuevo, es posible que puedas recuperarla utilizando la función de Git reflog:

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

Esto te permite restaurar la rama desde su última confirmación conocida, si no se ha perdido por completo en la recogida de basura.

Eliminar la rama actual

Git no te permite eliminar la rama en la que estás actualmente, lo cual tiene sentido, pues de lo contrario te quedarías sin rama activa. Si aparece un error al intentar eliminar una rama, cambia primero a otra rama:

git checkout main

O, si utilizas Git 2.23+:

git switch main

Una vez que estés en una rama diferente, puedes eliminar con seguridad la que pretendías eliminar.

¿Necesitas pasar de una rama a otra antes de eliminar una? Nuestra guía sobre la comprobación de una rama remota en Git te guía a través del proceso.

Borrar accidentalmente una rama remota

Si una rama remota se eliminó por error, puedes restaurarla (suponiendo que aún tengas una copia local) devolviéndola a la remota:

git push origin <deleted_branch_name>

Esto recrea la rama en el repositorio remoto, restaurando el acceso de los colaboradores. Si no existe una copia local, puede que tengas que comprobar manualmente tu historial de confirmaciones y volver a crear la rama.

¿Por qué no puedo eliminar una rama Git?

Si tienes problemas para eliminar una rama en Git, revisa los problemas comunes; comprueba si está totalmente fusionada, si estás actualmente en la rama o si es una rama remota. A partir de aquí, puede ser tu configuración o tus permisos.  

  1. Lo primero que hay que comprobar es si estás actualmente en esa rama. Git no te permitirá eliminar una rama en la que estés trabajando activamente, así que primero tendrás que cambiar a otra rama. 
  2. Si ese no es el problema, puede que la rama aún tenga cambios sin fusionar. Git protege las ramas con trabajo no fusionado, así que a menos que estés absolutamente seguro de que no necesitas esos cambios, tendrás que fusionar o forzar la eliminación de la rama utilizando git branch -D branch-name.
  3. Si intentas eliminar una rama remota, un simple git branch -d no servirá. En su lugar, tendrás que ejecutar git push origin --delete branch-name, y para limpiar las referencias antiguas, puedes utilizar git fetch --prune
  4. Algunos repositorios, especialmente los alojados en plataformas como GitHub o GitLab, tienen ramas protegidas que no se pueden eliminar sin cambiar la configuración. Si trabajas en un repositorio compartido, puede que también necesites los permisos adecuados para eliminar ramas.

¿Sigues atascado? Ejecutar git branch -v puede darte más detalles sobre el estado de la rama y ayudarte a averiguar qué está pasando antes de volver a intentarlo.

Automatizar la limpieza de ramas con Git

Me encanta la buena automatización. Aunque borrar ramas manualmente funciona bien, y deberías saber cómo hacerlo, hay otra forma. Si manejas muchas ramas (como en un equipo), la automatización puede ahorrar tiempo y mantener las cosas más ordenadas. Git ofrece algunas formas de agilizar la limpieza de ramas, reduciendo el desorden sin esfuerzo adicional.

Automatizar la limpieza remota de ramas

Cuando se elimina una rama remota, tu Git local sigue manteniendo una referencia a ella hasta que actualices las cosas manualmente. En lugar de limpiarlos uno a uno, puedes utilizar:

git fetch --prune

El comando anterior elimina automáticamente las referencias locales a ramas que ya no existen en el repositorio remoto, manteniendo todo sincronizado. Ejecutar esto regularmente evita que se acumulen ramas obsoletas en tu repositorio local.

Utilizar ganchos Git para la limpieza

Para equipos o proyectos más grandes, los ganchos Git pueden ayudar a automatizar la limpieza de ramas. Los ganchos son scripts personalizados que se ejecutan en determinados puntos del flujo de trabajo de Git, como después de fusionar una rama. Puedes configurar un gancho post-fusión para que elimine automáticamente las ramas fusionadas tras un periodo determinado, asegurando que las ramas antiguas no permanezcan innecesariamente.

Conclusión

Las ramas pueden desordenarse con el tiempo, pero un poco de "recorte" ayuda a mantener tu repositorio limpio y tu flujo de trabajo eficiente. Si adquieres el hábito de eliminar las ramas fusionadas, comprobar dos veces las no fusionadas y mantener abierta la comunicación en los proyectos de equipo, podrás evitar estos problemas. Y si quieres ir un paso más allá, las herramientas de automatización como git fetch --prune y los ganchos Git pueden ayudarte a mantener limpio tu repositorio sin esfuerzo adicional.

Eliminar ramas es sólo un paso para dominar Git. Para profundizar en el control de versiones, consulta el curso Git Intermedio. Si trabajas con repositorios de GitHub, es esencial que tengas un sólido conocimiento de los conceptos básicos de GitHub. ¡Aprende más en el curso Introducción a los conceptos de GitHub!

Aprende hoy los fundamentos de Git

Para principiantes: Control de versiones maestro mediante Git.

Preguntas frecuentes

¿El borrado de una rama en Git puede afectar a mi código de producción?

No, eliminar una rama no afecta al código de producción siempre que la rama ya se haya fusionado con tu rama principal (main o master). Sin embargo, si eliminas una rama con cambios no fusionados, se perderá todo el trabajo que no se haya incorporado a otra rama. Comprueba siempre el estado de la fusión antes de eliminarla.

¿Cómo evito que mi equipo borre accidentalmente ramas importantes?

Si trabajas en un repositorio compartido (GitHub, GitLab, etc.), puedes proteger ramas críticas como main y develop estableciendo reglas de protección de ramas. Esto ayuda a evitar borrados accidentales y empujes forzados no autorizados. Para los repositorios locales, considera la posibilidad de utilizar convenciones de nomenclatura (por ejemplo, anteponer a las ramas activas el prefijo wip- para trabajo en curso) para indicar cuáles no deben eliminarse todavía.

¿Hay alguna forma de saber quién ha borrado una rama Git remota?

Sí, en los repositorios alojados en GitHub, GitLab o Bitbucket, las eliminaciones de ramas suelen registrarse en el feed de actividad. Puedes consultar los registros de auditoría de tu repositorio o el historial de confirmaciones para ver quién borró una rama y cuándo. Para los repositorios Git autoalojados, puede que necesites configurar ganchos en el servidor para realizar un seguimiento manual de las eliminaciones.

¿Cómo recupero una rama Git eliminada si he cerrado mi terminal?

Si has eliminado una rama y no has cerrado el terminal, puedes deshacerlo con:

git checkout -b

Pero si ya has cerrado tu terminal, la mejor opción es utilizar git reflog.

Esto mostrará un historial de acciones recientes, incluidas las eliminaciones de ramas. Busca el hash de la última confirmación de la rama eliminada y utilízalo para volver a crear la rama. Sin embargo, si la rama se eliminó de forma remota y local, y nadie más tiene una copia, puede que la recuperación no sea posible.

¿Cuál es la diferencia entre `git branch -d` y `git branch -D` en el uso real?

  • git branch -d - Borrado seguro. Evitará el borrado si la rama tiene cambios sin fusionar, actuando como una red de seguridad.
  • git branch -D - Forzar borrado. No le importa si la rama tiene cambios sin fusionar: la eliminará inmediatamente.

En un escenario real, utilizarías -d la mayor parte del tiempo para evitar perder trabajo por accidente. Utiliza -D sólo cuando estés 100% seguro de que el contenido de la rama ya no es necesario.


Ashlyn Brooks's photo
Author
Ashlyn Brooks

Ashlyn Brooks es redactora técnica especializada en plataformas en la nube (Azure, AWS), documentación de API e infraestructura de datos. Con más de siete años de experiencia, destaca en la traducción de conceptos complejos en contenidos claros y fáciles de usar que mejoran la experiencia del desarrollador y la adopción del producto.

Temas

Aprende más sobre Git con estos cursos

Curso

Introduction to Git

2 hr
16.3K
Discover the fundamentals of Git for version control in your software and data projects.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

Tutorial

Git rename branch: Cómo cambiar el nombre de una rama local o remota

Aprende a renombrar ramas Git locales y remotas utilizando el terminal o la interfaz gráfica de usuario (GUI) de clientes populares como GitHub.

Tutorial

Git Prune: Qué es la poda Git y cómo usarla

La poda Git es un comando Git que elimina del repositorio los objetos que ya no son accesibles desde ninguna confirmación o rama, ayudando a liberar espacio en disco.

Tutorial

Git pull force: Cómo sobrescribir una rama local con una remota

Aprende por qué git pull --force no es la mejor forma de sobrescribir una rama local con la versión remota, y descubre el método adecuado utilizando git fetch y git reset.

Tutorial

Tutorial de Git Revert y Git Reset para principiantes

Una guía tutorial para principiantes que muestra cómo utilizar los comandos Git Revert y Reset.
Zoumana Keita 's photo

Zoumana Keita

10 min

Tutorial

Tutorial de GIT Push y Pull

Aprende a realizar solicitudes de Git PUSH y PULL con GitHub Desktop y la línea de comandos.

Olivia Smith

13 min

Tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Ver másVer más