for dir in ~/projects/git/*; do (cd "$dir" && git pull); done
Si necesita que sea recursivo:
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;
Esto descenderá a todos los directorios debajo del actual y realizará un git pull en esos subdirectorios que tienen un directorio .git (puede limitarlo con -maxdepth
).
Si tiene GNU Parallel http://www.gnu.org/software/parallel/ instalado, puede hacer esto:
cd ~/projects/git/; ls | parallel 'cd {} && git pull'
Esto se ejecutará en paralelo, por lo que si la conexión de red de algunos de los servidores git es lenta, esto puede acelerar las cosas.
Mire el video de introducción de GNU Parallel para obtener más información:http://www.youtube.com/watch?v=OpaiGYxkSuQ