Auf dem Remote-Server habe ich einen Post-Receive-Hook eingerichtet, um ein Git-Checkout in meinem Repository durchzuführen:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Wenn ich jedoch einen Push von meinem lokalen Computer zum Git-Repository auf dem Server mache, werden die folgenden Fehlermeldungen angezeigt:
remote: error: unable to unlink old '<file>' (Permission denied)
Dies erscheint um ein Vielfaches, eine Fehlermeldung für fast jede Datei.
Ich habe jedoch eine README.txt-Datei, die ich mit git ändern kann. Hier sind die Berechtigungen:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
Aber andere Dateien mit genau demselben Eigentümer und denselben Berechtigungen geben mir diesen Fehler.
In einem anderen lokalen Repository für eine andere Website habe ich die Dateien mit meinem lokalen Computernamen als Eigentümer. Wenn ich auf den Remote-Server pushe, respektiert dies den Remote-Server-Eigentümer der Dateien und funktioniert wie ein Zauber.
Offensichtlich scheint es sich um einen Fehler im Zusammenhang mit Berechtigungen zu handeln, aber ich kann keinen Weg finden, ihn zu beheben. Irgendwelche Vorschläge?
sudo chmod -R g+w
über die schuldigen Ordner behoben .