Encontré este command en línea que me permite estar en un directory padre y pasará por cada directory y actualizará el repository de git en cada uno. También puedo hacer esto para get el estado, etc. Me preguntaba si había una forma de limpiar la salida y que sea más legible para el usuario.
ls | xargs -I{} git -C {} pull
Esto funciona bien pero solo me da la respuesta. Me gustaría que muestre el nombre del repository y luego la respuesta, etc. ¿Hay alguna manera de obligarlo a hacer esto fácilmente? ¿Con suerte usando un alias de alguna manera?
¿Hace esto lo que quieres?
for dir in * ; do if [ \! -L ${dir} -a -d ${dir}/.git ] ; then (cd ${dir} ; echo ":::: ${dir} ::::"; git pull) ; fi ; done
Pasa por cada elemento en su directory actual, y si el elemento es la parte superior de un repository de git, imprimirá el nombre del directory y realizará una git pull
. Puede agregar cualquier otro command que desee realizar en cada repository después de la git pull
.
EDITAR:
puede alias al agregarlo a ~./bash_aliases
como una function de shell:
git-pull-all () { #command here }
O bien, si por alguna razón desea agregarlo como un alias git en lugar de un alias bash, ¡puede anteponer el nombre del command !
cuando lo creas:
git config --global alias.pull-all '!COMMAND_HERE'