Damian Brunold

Automatisches git update

2012-02-16 14:10 Linux

Ich habe ein git repository das unter anderem eine Website enthält. Davon gibt es auf dem Webserver ein geklontes repository, das in Apache eingebunden ist, sodass mit einem einfachen git pull die Website aktualisiert werden kann.

Nun wollte ich das einen Schritt vereinfachen. Ich wollte nur schon durch git push ins zentrale Repository die Website aktualisieren. Für solche Sachen gibt es hooks, in diesem Fall den post-receive Hook (früher post-update). Mein Ansatz war somit, in diesem Hook das

cd /path/to/web/site/repo
git pull

zu schreiben. Leider klappte dies nicht. Es stellte sich heraus, dass die Environmentvariable GIT_DIR gesetzt war und somit das cd keinen Einfluss hatte. Die Lösung ist stattdessen

cd /path/to/web/site/repo
env -i git pull

zu schreiben. Das klappt tadellos.