Wer mehrere lokale git Repositories auf seinem Rechner liegen hat, weiß sicher, welche „Freude“ es macht, diese auf dem aktuellen Stand zu halten.
Mit ein wenig Shell-Script geht das jedoch ganz leicht von der Hand und weh tut es auch nicht 😉
[shell]
#! /bin/bash
PRJDIR="$HOME/Projekte"
cd $PRJDIR
for REPO in $(find -name .git -type d | sort); do
cd $PRJDIR
DIR=$(dirname $REPO)
REPOPATH=$(realpath $DIR)
REPONAME=$(basename $REPOPATH)
cd "$REPOPATH"
echo "Aktualisiere $REPONAME"
UPSTREAM=$(git remote -v | grep ups)
if [ -n "$UPSTREAM" ]; then
echo "Synchronisiere mit Upstream"
git fetch upstream
git checkout master
git merge upstream/master
git push
else
git pull
fi
echo
done
[/shell]
ggf. muss man die Variable $PRJDIR in Zeile 3 des Scriptes anpassen, sofern die git Repositories sich an einem anderen Ort befinden.