es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , ,

Answer

  1. Avatar for 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 y develop.

    Afortunadamente, existe una forma de eliminar todas las ramas locales excepto master y develop con tan solo un comando. El siguiente comando eliminará todas las ramas locales excepto master y develop:

    git branch | grep -v -e master -e develop | xargs git branch -D 
    

    Explicación del comando:

    • git branch lista todas las ramas locales
    • grep -v filtra las ramas que coinciden con el patrón dado
    • En este caso, queremos excluir las ramas master y develop, por lo que usamos la opción -e para especificar múltiples patrones a excluir
    • xargs pasa la salida de un comando como argumentos a otro comando
    • git branch -D elimina la(s) rama(s) especificada(s)

    Al utilizar este comando, puedes eliminar todas las ramas locales excepto master y develop, con tan solo un comando, sin la necesidad de scripts adicionales en la línea de comandos o alias.

Comments are closed.