2013-06-08 2 views
0

Я пытаюсь настроить git post-update hook в среде Windows. Вот код:Ошибка Git post-update «Не каталог»

#!/bin/sh 
cd /c/inetpub/vhosts/mywebsite || exit 
unset GIT_DIR 
git pull hub master 
exec git-update-server-info 

Когда я запускаю это из оболочки (sh post-update), все работает отлично. Но после нажатия у меня есть ошибка:

hooks/post-update: line 7: cd: /c/inetpub/vhosts/mywebsite: Not a directory 

Что я делаю неправильно?

+0

Когда вы находитесь в оболочке * Git Bash *, что произойдет, если вы попытаетесь выполнить 'cd/c/inetpub/vhosts/mywebsite'? –

+0

Все работает так, как ожидалось, текущий каталог изменился на/c/inetpub/vhosts/mywebsite. – breethe

+0

что вы получаете, если вы используете 'echo $ USER' в своей оболочке, и если вы положите это на свой скрипт hook и сделаете push? Означает ли это то же самое? Кроме того, если вы измените абсолютный путь '/ c/inetpub/vhosts/mywebsite' на относительный путь, это работает? (Для этого имейте в виду, что скрипты hook выполняются в корневой директории репозитория, например, если ваш скрипт hook - '/ c/repos/repo.git/hooks/post-update', то он выполняется в'/c/repos/repo.git'.) – janos

ответ

0

Вы можете попробовать использовать другой путь, соответствующий путь. Например, ваш корневой путь.

#!/bin/sh 
unset GIT_DIR 
cd .. 
git checkout -f 

Использование cd .. вернуться в корневой каталог вашей папки. Затем git checkout -f используется для принудительного обновления рабочей копии каждый раз, когда репо обновляется.

+0

Ошибка при получении: «Не репозиторий git (или любой из родительские каталоги): .git " – breethe

 Смежные вопросы

  • Нет связанных вопросов^_^