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