Я новичок в серверных хуках с Git, и я столкнулся с проблемой, когда кажется, что хуки просто не работают вообще. Мое Git репо - это чистое репо.
Все, что я хочу сделать, - это извлечь один файл из репо и записать его на диск в другом месте. Мне не нужен весь архив.
На удаленном (исходном) сервере я создал этот файл и вставил его в /my/path/repo.git/hooks
.
#!/bin/sh
# For debugging
echo "HELLO" > /my/path/hello.txt
# Auto-deploy thefile.php to /my/path/ every time something is pushed to this repo
exec git -C /my/path/repo.git show master:thefile.php > /my/path/thefile.php
Я проверил разрешения на крючке:
-rwxrwxr-x 1 webadmin webadmin 543 15 января, 16:27 пост-обновление
Если я вручную запустил скрипт на моем сервере с помощью $ ./path/to/repo.git/hooks/post-update
, все отлично работает. hello.txt
пишется вместе с thefile.php
.
Но когда я делаю sh, мой локальный репо в источник ничего не меняется Я проверяю свои толчки, возвращая последний коммит и нажимая его. Для следующего теста я отбрасываю этот отмененный коммит и заставляю pu sh удалить его из origin/master
. Таким образом, есть реальные коммиты с изменениями, которые происходят каждый раз, когда я пу sh. В отчаянии я сделал совершенно новый коммит с произвольным изменением, и это не имело никакого значения.
Я пробовал этот хук как post-update
, так и post-receive
. Кажется, ни один из них не работает.
Я был бы очень признателен за любую информацию, которую вы, ребята, можете предоставить.