Eliminar las twigs de git cuyo nombre coincida con un determinado patrón

¿Cómo puedo eliminar twigs en git comenzando con la letra 'o'?

Supongamos que tengo una list de twigs como la siguiente:

origin_alpha origin_beta origin_gamma alpha beta gamma 

Quiero eliminar las twigs origin_alpha , origin_beta y origin_gamma .

Puede usar git branch --list <pattern> y pipe su salida a xargs git branch -d :

 git branch --list 'o*' | xargs git branch -d 

Por cierto, hay un problema menor con el código anterior. Si actualmente ha comprobado una de las twigs que comienza con o la salida de la git branch --list 'o*' se vería así:

 * origin_master origin_test o_what_a_branch 

Tenga en count el asterisco * delante del nombre de la sucursal actual.

Si bien no puede eliminar la twig actual de todos modos, lleva al hecho de que xargs también pasa * a la git branch delete .

Como digo, es solo un error estético, pero si quieres evitarlo, utiliza:

 git branch --list 'o*' | sed 's/^* //' | xargs git branch -d 

Otra forma podría ser esta:

 git branch -d $(git branch | grep yourSearchPattern) 

para mí parece más intuitivo porque grep es algo que uso a diario.

También podría hacer un alias de él (o también de cualquier solución sugerida aquí), revise por ejemplo aquí cómo pasar arguments a un alias: http://www.cyberciti.biz/faq/linux-unix-pass-argument- alias-command /

PD en su caso específico, yourSearchPattern podría ser de origen:

 git branch -d $(git branch | grep origin) 

PPS como paso siguiente, también sería bueno hacer que el process de eliminación sea más detallado, por ejemplo, sería bueno que tuviera que confirmar la eliminación para cada twig. Pero creo que eso supera la pregunta …