0

私は、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 でセットアップされたアカウントを使用してローカル リポジトリにプルできます。

何か案は?私はまったく喜びを感じていません。

4

1 に答える 1

1

/var/www/www.foo.net/ が有効な git リポジトリである場合

git --git-dir=/var/www/www.foo.net/.git --work-tree=/var/www/www.foo.net プル

これにより、FF プルが発生するはずです。

于 2013-05-07T19:52:58.240 に答える