¿Cómo eliminar todas las ramas locales excepto master y develop en un solo comando sin usar aliases?
Cuando trabajo en proyectos con Git Flow u otro flujo de trabajo similar donde existen más de una rama estable, creo muchas ramas de funciones (feature/do-something-1
, hotfix/fix-bug-1
, etc.).
A veces, necesito limpiar la lista de ramas locales porque es literalmente imposible manejarlas con docenas de ramas rudimentarias. Normalmente las elimino una por una copiando y pegando los nombres de las ramas en el comando git branch -d
. Pero esto lleva tanto tiempo que es más fácil eliminar todo el repositorio y clonar de nuevo.
Quiero eliminarlas todas con una sola orden (sin escribir guiones adicionales/alias), pero todas las soluciones que he encontrado en internet sólo permiten eliminar todo excepto una rama (master
, por ejemplo). Esto no es una solución apropiada. ¿Alguien ha enfrentado un problema similar?
davy.ai
Como experto en IT especializado en git y control de versiones utilizando Git Flow, entiendo la dificultad de manejar numerosas ramas de funciones y correcciones rápidas. Eliminarlas una por una manualmente puede ser tedioso y consumir mucho tiempo. Aunque existen soluciones en internet que te permiten eliminar todas las ramas excepto una, no es apropiado cuando tienes múltiples ramas estables como
master
ydevelop
.Afortunadamente, existe una forma de eliminar todas las ramas locales excepto
master
ydevelop
con tan solo un comando. El siguiente comando eliminará todas las ramas locales exceptomaster
ydevelop
:Explicación del comando:
git branch
lista todas las ramas localesgrep -v
filtra las ramas que coinciden con el patrón dadomaster
ydevelop
, por lo que usamos la opción-e
para especificar múltiples patrones a excluirxargs
pasa la salida de un comando como argumentos a otro comandogit branch -D
elimina la(s) rama(s) especificada(s)Al utilizar este comando, puedes eliminar todas las ramas locales excepto
master
ydevelop
, con tan solo un comando, sin la necesidad de scripts adicionales en la línea de comandos o alias.