GIT push-to-sync

Diese Methode kann hilfreich sein, wenn man z.B. seine Webseite mit Git verwaltet und einen einfachen Weg sucht, Änderung oder auch alte Schnappschüsse einfach publizieren zu können.

Eine read-only Kopie des Git Repos für den HTTP Zugriff erstellen

Man benötigt im GIT Repo lediglich ein Shellscript, welches nach jedem Push aufgerufen wird. In Git nennt sich so etwas "hooks".

hooks/post-receive
#!/bin/sh export http_dir="/srv/http/var/htdoc/git" read oldrev newrev refname branch=${refname#refs/heads/} repo=${PWD##*/} if [ "${branch}" = "master" ]; then umask 0022 rm -rf ${http_dir}/${repo} git clone --bare --local /srv/git/${repo} ${http_dir}/${repo} cd ${http_dir}/${repo} && git update-server-info else echo "Ignoring update for branch ${branch}" fi
chmod a+x hooks/post-receive