Проблема здесь заключается в том, что в хуке post-update
в репозитории, не являющемся пустым, GIT_DIR
имеет значение .
, а текущий каталог - каталог .git
. Для получения подробной информации о каждом другом git hook, см. это недооцененное сообщение в блоге ;)
Это означает, что если вы сделаете cd ..
, то GIT_DIR
все равно будет .
, но ваш текущий каталог больше не будет каталогом .git
. Попробуйте начать свой скрипт ловушки с:
export GIT_DIR=/whereever/production/.git
export GIT_WORK_TREE=/whereever/production/
... на всякий случай - правила о том, как GIT_DIR
и GIT_WORK_TREE
взаимодействуют, сложны.