Хорошо, я обнаружил, в чем проблема - раздел на хосте смонтирован как noexec
. Если это так, перехватчики не могут работать.
Это по соображениям безопасности. Это типичная ситуация на виртуальном хостинге.
Мое альтернативное решение:
Мы можем создать псевдоним git, где вы можете запустить скрипт bash с регистрацией s sh и выполните команду git непосредственно на сервере
Как это сделать?
В файле конфигурации локального репозитория мы добавим псевдоним:
[alias]
run = "!sh ./hook.sh"
(как видно из примера, этот псевдоним запускает ловушку. sh файл)
Теперь мы создадим ловушку. sh файл с git команды
#!/bin/bash
ssh user@host -p [port] 'bash -s' <<-EOF
git --work-tree=/home/xxxxxx/xxxxxx/public_html/prod --git-dir=/home/xxxxxx/xxxxxx/dev.git checkout -f
exit
EOF
А теперь нам просто нужно использовать команду git run
Примечание. Это простой пример. Вы должны проверить это в своей среде!