for dir in ~/projects/git/*; do (cd "$dir" && git pull); done
Si vous avez besoin qu'il soit récursif :
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;
Cela descendra dans tous les répertoires sous le répertoire actuel et effectuera un git pull sur les sous-répertoires qui ont un répertoire .git (vous pouvez le limiter avec -maxdepth
).
Si vous avez GNU Parallel http://www.gnu.org/software/parallel/ installé, vous pouvez faire ceci :
cd ~/projects/git/; ls | parallel 'cd {} && git pull'
Cela fonctionnera en parallèle, donc si la connexion réseau de certains des serveurs git est lente, cela peut accélérer les choses.
Regardez la vidéo d'introduction de GNU Parallel pour en savoir plus :http://www.youtube.com/watch?v=OpaiGYxkSuQ