Ja, das ist durchaus möglich.
Nehmen wir an, ich habe ein nacktes Repository /srv/production.git
auf dem Zielsystem / Server.
Auf dem Zielsystem kann ich den Befehl verwenden cd /srv/production.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
Wenn ich mich in einem nicht-leeren Repository befinde, ist der Befehl etwas anders. Nehmen wir an, ich habe ein nicht-nacktes Reservoir an /srv/testing
. Zum checkout würde ich verwendencd /srv/testing/.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
Auf meinem System automatisiere ich dies sogar in einem Post-Commit-Hook in meinem production.git
Repository. Wenn Sie also zur production.git
neuesten Version wechseln, checken Sie automatisch zum Web-Root aus.
#!/bin/sh # # An example hook script that is called after a successful # commit is made. # # To enable this hook, rename this file to "post-commit". GIT_WORK_TREE=/srv/production-www/ git checkout -f # ... misc other commands to verify permissions are set correctly.
Wenn Sie nur über Webdav auf das Remote-System zugreifen, sollte es sicherlich möglich sein, einen Post-Commit-Hook zu schreiben, der entweder direkt oder über einen temporären Speicherort an den Webdav-Host auscheckt.