Uppdatera flera gitrepon samtidigt

Om du, som jag, har flera gitrepon lokalt på din disk och ibland behöver uppdatera dem med git pull kan det vara skönt att veta att det finns ett enklare sätt. Mina lokala github repon är lagrade så här i min hemkatalog:

~/github/
~/github/repo1/
~/github/repo2/
~/github/repo3/

Istället för att behöva gå in i varje enskild katalog (repo1, repo2, …) och köra git pull för att uppdatera den lokala kopian skrev jag ett skript som gör det åt mig. Jag döpte skriptet till update-git.sh och lade det i min bin-katalog för att det skulle ligga i mina sökvägar. Nu går jag in i ~/github/ katalogen och kör kommandot update-git.sh och efter en liten stund är alla repona uppdaterade med den senaste fjärrkopian (remote).

#!/bin/bash

find `pwd` -type d -name .git | xargs -n 1 dirname | sort \
 | while read l; do echo $l && cd $l && git pull; done