Cuando trabajamos en diferentes proyectos y además usamos la estrategia que siempre recomiendo Trunk Based development, es habitual que creemos muchas ramas temporales. Algunas se eliminan del repositorio remoto después de hacer merge o cerrar una tarea, pero permanecen en nuestro entorno local… ocupando espacio y ensuciando la lista de ramas. Sobre todo dificulta para buscar las ramas que estamos trabajando.
Pero Git nos da una forma rápida de limpiar esas ramas locales que ya no tienen su equivalente remoto. Te explico un comando que uso con frecuencia para dejar mi repositorio local impecable:
🧪 El comando mágico:
git fetch -p && git branch -vv | grep 'gone]' | awk '{print $1}' | xargs git branch -D
🧠 ¿Qué hace exactamente?
Vamos paso a paso:
git fetch -p
- Actualiza la información del repositorio remoto.
- La opción
-p
(o--prune
) elimina las referencias a ramas remotas que ya no existen. - ✅ Nos asegura que Git sabe cuáles ramas han desaparecido del remoto.
git branch -vv
- Muestra todas las ramas locales con detalles: tracking, último commit, y si están desfasadas.
- Aquí es donde Git nos dice si una rama está marcada como
[gone]
.
grep 'gone]'
- Filtra las ramas locales cuyo tracking remoto ha desaparecido.
awk '{print $1}'
- Extrae solo el nombre de la rama local de cada línea.
xargs git branch -D
- Elimina forzosamente todas esas ramas locales huérfanas.
- ⚠️ Usa
-D
en lugar de-d
para no tener que comprobar si han sido fusionadas.
🎯 ¿Cuándo usar este comando?
- Después de hacer merge de ramas de características o fixes.
- Tras un
git pull
en el main o develop. - Cuando notas que tu lista de ramas empieza a parecer un cementerio de ramas antiguas.
📌 Consejo extra
Si prefieres ir con más cuidado, puedes cambiar -D
por -d
en el último paso:
xargs git branch -d
Esto eliminará solo las ramas que ya han sido fusionadas y evitará pérdidas accidentales.
Con este comando, puedes mantener tu entorno limpio, ordenado y sin ramas obsoletas que solo ocupan espacio. ¡Pruébalo y verás lo bien que sienta una limpieza de ramas
Basado en este artículo de blog