Mostrando la twig de git al listr directorys – Ubuntu Terminal

solo una pregunta rápida, ¿hay alguna forma de enumerar las twigs de las diferentes carpetas al listr esas carpetas?

Lo que quiero decir es, digamos que tienes un par de carpetas con diferentes proyectos y quieres hacer ls -l y también ver qué twig está en las diferentes carpetas, ¿hay alguna manera?

 ls -l | awk '{cmd="git --git-dir="$NF"/.git branch 2>/dev/null| grep ^*";system(cmd "> .tmp");getline branch < ".tmp";close(".tmp");print $0" "branch} END {cmd="rm -rf .tmp";system(cmd)}' 

No soy bueno en awk y esta es solo una solución aproximada.

Esto imprimirá el directory y el actual:

 find . -type d -depth 1 -print0 -exec git --git-dir={}/.git rev-parse --abbrev-ref HEAD \; 

El resultado será algo así como:

 ./dir<branch> 

Para mejorar la salida con un espacio ./dir<space><branch> esto podría funcionar:

 find . -type d -depth 1 -print0 -exec sh -c 'b=$(git --git-dir={}/.git rev-parse --abbrev-ref HEAD); echo " $b"' \; 

Para ver todas las twigs, esto funcionará:

 find . -type d -depth 1 -print0 -exec git --git-dir={}/.git branch \; 

Observe el rev-parse --abbrev-ref HEAD vs branch

Asume que tienes múltiples repositorys dentro de un directory, también puedes hacer un pull reemplazando la branch para mantener todos los proyectos sincronizados.

Un alias podría ser útil, algo así como:

 alias pb='find . -type d -depth 1 -print0 -exec git --git-dir={}/.git rev-parse --abbrev-ref HEAD \;'