Git: Eliminar una rama local
Última actualización
Una vez que el trabajo de una rama está fusionado, la eliminas con git branch -d <branch>. Git se niega si la rama tiene commits que no están fusionados en ningún sitio: es una comprobación de seguridad. Para eliminarla de todos modos, usa la -D mayúscula. Eliminar una rama local nunca afecta a la copia en el remoto; ese es un comando aparte.
Prueba esto en el terminal playground: una shell real en tu navegador, sin nada que instalar.
Sintaxis
| Command | What it does |
|---|---|
git branch -d feature | Elimina feature (solo si está fusionada) |
git branch -D feature | Fuerza el borrado de feature aunque no esté fusionada |
git branch -d branch1 branch2 | Elimina varias ramas a la vez |
Casos comunes
| Goal | Command |
|---|---|
| Eliminar una rama fusionada | git branch -d old-feature |
| Forzar el borrado de una rama sin fusionar | git branch -D scratch |
| Eliminar la rama en la que estás | git switch main luego git branch -d feature |
| Ver qué ramas están fusionadas | git branch --merged |
Ejemplo práctico
Termina una funcionalidad, fusiónala y limpia la rama local.
| Step | Command | Result |
|---|---|---|
| 1 | git switch main | Sal de la rama que quieres eliminar |
| 2 | git merge feature | Trae los commits de la funcionalidad a main |
| 3 | git branch -d feature | Elimina la rama ya fusionada |
Preguntas frecuentes sobre eliminar una rama local en Git
¿Cuál es la diferencia entre git branch -d y -D?
-d es el borrado seguro: Git solo elimina la rama si sus commits ya están fusionados en otra rama, así no puedes perder trabajo por accidente. -D es el borrado forzado (abreviatura de --delete --force): elimina la rama pase lo que pase, incluso si tiene commits sin fusionar. Usa -d por defecto y recurre a -D solo cuando estés seguro de que quieres descartar los commits de la rama.¿Cómo elimino la rama en la que estoy actualmente?
git switch main (o git checkout main), y luego ejecuta git branch -d feature. Si intentas eliminar la rama actual, Git da el error "Cannot delete branch ... checked out".¿Eliminar una rama local la elimina en GitHub?
git branch -d solo elimina la rama de tu repositorio local. La rama en el remoto (GitHub, GitLab, etc.) permanece hasta que la elimines por separado con git push origin --delete feature.¿Puedo recuperar una rama que eliminé?
git reflog para encontrar el commit al que apuntaba la rama, y luego recréala con git branch feature <commit-hash>. Los commits no se recolectan como basura de inmediato, así que una rama eliminada por error normalmente se puede restaurar.