2

サーバーでは、/home/git/xxx/hooks/post-receive:

#!/bin/bash

cd /var/www/xxx
git pull

サーバーでは、 /var/www/xxx は次のように作成されました。

cd /var/www
git clone /home/git/repositories/xxx.git

クライアントで「git push」を実行すると、次のメッセージが表示されました。

remote: fatal: Not a git repository: '.'

何か案は?

4

4 に答える 4

5

hereで説明されているように、問題はフックが呼び出されたときにGIT_DIR設定されることです。.

GIT_DIRpost-receive フックで設定を解除すると、動作するはずです。

#!/bin/bash

unset GIT_DIR
cd /var/www/xxx
git pull
于 2014-11-08T10:36:44.607 に答える
1

コメントによると、変更が Git リポジトリにプッシュされたときに Web サイトを自動的に更新したいと考えています。これを試してください: http://www.ekynoxe.com/automated-deployment-on-remote-server-with-git/

Web サイトのルート ディレクトリ ( /var/www/xxx) は、Git リポジトリ自体ではないことに注意してください。作業ツリーを保持するだけです。

于 2012-05-29T17:36:52.170 に答える
0

プルされたディレクトリがありません。

cd /var/www
git clone /home/git/repositories/xxx.git

上記のコマンドは、アプリケーション名が xxx の場合、/var/wwwの下に xxx として新しいディレクトリを作成します。

次に、この新しく作成されたディレクトリに移動する必要があります。

cd /var/www/xxx

ここで、コマンド「git push」を実行します。これはうまくいくはずです。

于 2012-05-29T09:59:59.133 に答える
0

リポジトリ フォルダはベア リポジトリである必要があります。

git init --bare
于 2014-11-14T12:52:04.920 に答える