私は、Ubuntu 12.04 サーバー上の Web サイトで作業しています。コードを自分の Web サイトにプッシュするときに、フックが自動的pull
に apache フォルダー内のコードに移動するようにします。次のコマンドは、Web サイトをリポジトリの現在のマスターに問題なく更新します。
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: '.'
それが正しいディレクトリにあること、および上で述べたように、問題なくそのディレクトリを取得できることを報告する方法に注意してください。git リポジトリです/var/www/www.foo.net/
。
私も使ってみ( cd /var/www/www.foo.net/ ; git pull )
ましたがダメでした。また、権限とは何の関係もないと思います。私は Gitolite を使用しており、Gitolite でセットアップされたアカウントを使用してローカル リポジトリにプルできます。
何か案は?私はまったく喜びを感じていません。