Я пытаюсь создать сценарий пост-обновления и использовать git в качестве инструмента развертывания на удаленном сервере.
Мой сценарий после обновления выглядит примерно так
git update-server-info
for ref in $@;do
echo $ref
if [ "$ref" = "refs/heads/production" ]
then
ssh git@myProductionServer.com GIT_WORK_TREE=/home/www/test git checkout -f production
fi
done
Однако,когда я запускаю это, возвращается ошибка, которая говорит:
Not a git repository (or any of the parent directories): .git
Что не имеет никакого смысла, потому что я могу запускать команды git из каталога через ssh.
Есть ли что-то еще, что мне нужно сделать в моем скрипте после обновления?
Решение
Я добавилпеременная GIT_DIR
, поэтому моя команда выглядит так:
ssh git@myProductionServer.com GIT_DIR=/home/www/test/.git GIT_WORK_TREE=/home/www/test git checkout -f production