Я не совсем понимаю, как я оказался в этой ситуации, но вот что я нашел:
Во-первых; Я экспериментировал с GIT, возможно, я не знаю, как его использовать, и это главная причина, по которой у меня было несколько проблем, и я не был уверен в том, что их вызывает.
Я пытался установить локальный сервер GIT, чтобы я мог работать на своем компьютере, перенести свой код на сервер Linux и затем соответствующим образом обновить развернутый проект.
Сначала я попытался создать пустое хранилище, перенести туда свой код из среды IDE и добавить в него репозиторий после получения, чтобы мое развернутое хранилище могло извлечь выгоду из изменений, которые я отправил.
Я думаю, что тот факт, что я просматривал смонтированную папку, был частью проблемы, так как эта установка работала с несколькими тестовыми программами и файлами локально.
Теперь проблема, создаваемая этим, заключается в том, что мой код действительно будет помещен в пустое хранилище, будет запущен хук post-receive, но переменные ref и т. Д., Используемые в сценарии, по какой-то причине будут пустыми. У меня также было несколько забавных результатов, когда я пытался решить эту проблему, когда мои удаленные / ответвления использовали бы контекст моей машины вместо сервера.
В любом случае, это не сработало. Мне удалось воспроизвести это поведение на моем собственном компьютере и Raspberry Pi: другой механизм, одинаковые настройки. хук будет запущен, но скрипт застрянет, переменные останутся пустыми. (это та часть, которую я до сих пор не понимаю, потому что удаленные пути были хорошими, все выглядело хорошо, толкание сработало бы, тянет и т. д.)
Теперь, что в итоге решило, это установило это по-другому:
1) создание пустого репо, пустого (на стороне сервера)
2) создание клона этого пустого репо, все еще на сервере (вероятно, не имеет значения).
3) поместить мой код в это новое хранилище и перенести его на новый, чтобы он был в курсе.
4) создание нового клона голого репо (для моего развернутого проекта)
5) добавление хука к голому репо, пост-получение, цель - развернутое репо, git dir - голое. (+ chmod 777 и + x в этом файле)
(оттуда изменение чего-либо и отталкивание от первого клона должно привести к срабатыванию крюка и правильной проверке развернутого репо)
6) затем я вернулся на свою IDE, клонировал голое хранилище, попытался внедрить что-то новое, и вот, наконец, все заработало, как и ожидалось.
Я могу только предполагать, что клонирование репозиториев, когда я настраивал свой проект, создало правильные связи между различными частями установки, что означает, что, как я впервые сделал, ему чего-то не хватало, поэтому он не мог работать должным образом.
Буду признателен, если кто-то с большим опытом в этом вопросе сможет дать более подробное объяснение. Тем временем моя проблема решена.