Да, это, конечно, возможно.
Допустим, у меня есть пустой репозиторий с именем /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, либо напрямую, либо во временное местоположение, которое затем можно будет сценарий загрузки.