Я работаю над веб-сайтом на сервере Ubuntu 12.04. Когда я вытаскиваю код на свой сайт, я хочу, чтобы мой крючок автоматически установил код в моей папке apache pull
. Следующие команды обновить свой веб-сайт для текущего мастера репозитория без каких-либо проблем:Невозможно потянуть за крючок git (скрипт bash)
cd /var/www/www.foo.net
git pull
Моего post-update
крюк, что должно делать это автоматически, но я получаю ту же ошибку, каждый раз, когда я толкать. Обратите внимание, что нажатие выполняется правильно каждый раз. Сценарий выглядит следующим образом (не имеет значения кода опущены):
#!/bin/bash
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
case "$BRANCH" in
"somebranch")
echo "You are pushing to somebranch!"
cd /var/www/www.foo.net
pwd
git pull
;;
esac
На мой взгляд, это выглядит, как он должен работать, особенно с учетом того, что выход отладки, что я ожидал, что это будет. Но это не работает. Я всегда получаю следующий результат:
remote: You are pushing to somebranch!
remote: /var/www/www.foo.net/
remote: fatal: Not a git repository: '.'
Обратите внимание, как он сообщает, что он находится в правильной директории и что, как я уже говорил выше, я могу тянуть в этом каталоге без проблем. /var/www/www.foo.net/
является git репозиторий.
Я также пробовал использовать (cd /var/www/www.foo.net/ ; git pull)
, но безрезультатно. Я также не думаю, что он может иметь какое-либо отношение к разрешениям; Я использую Gitolite и могу подключиться к локальному репозиторию, используя учетную запись, настроенную с Gitolite.
Любые идеи? У меня нет никакой радости.
Это действительно так! Вы знаете, почему другое не получилось? –