Так, це, безумовно, можливо.
Скажімо, у мене є голе сховище, назване /srv/production.git
на цільовій системі / сервері.
У системі призначення я можу використовувати команду cd /srv/production.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
Якщо я перебуваю в неоголеному сховищі, команда дещо відрізняється. Скажімо, у мене є непогашений сховище /srv/testing
. Оформити замовлення, що я б використовувавcd /srv/testing/.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
Насправді в моїй системі я навіть автоматизую це в гачку після фіксації у своєму production.git
сховищі. Тож, коли ви переходите на production.git
останню версію, автоматично перейдіть на веб-корінь.
#!/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.
Якщо ваш єдиний доступ до віддаленої системи - webdav, то, безумовно, має бути можливість написати гачок після завершення, який буде оформляти замовлення на хост webdav, безпосередньо або у тимчасове місце, яке ви зможете зафіксувати після завантаження.