1. ホーム
  2. git

[解決済み] post-update フックで別のリポジトリに 'git pull' を実行すると、「fatal: not a git repository: '.

2023-02-02 12:10:01

質問

私はgitの初心者なので、ここで用語の使い方が間違っていたら申し訳ないのですが(そして訂正してください)、最善を尽くします。

私は、Web サーバー上に裸の git リポ (hub) と開発サイトの作業コピー (prime) をセットアップしようとしています。私は、以下のようにパターン化しようとしました。 この記事 . ハブリポジトリがプッシュされるたびに、開発用の作業コピーが更新されるようにしたいのです。私は、このための適切なフックが post-update であるという印象を持っていますが、私はこのように作成しました。

#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET

更新情報

ローカルリポジトリの変更をベアハブにプッシュすると、ポストアップデートスクリプトから次のような出力が得られます。

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

しかし、ユーザー 'sites' としてサーバーに SSH 接続し、このスクリプトを手動で実行するとうまくいきます。 このフックまたはスクリプトで何がうまくいかないのか、何か思い当たることはありますか?

どのように解決するのですか?

最終的に動作したスクリプトはこちらです。リモートで動作しない原因となっていたのは、もともと私が見逃していたビットだと思います。 unset GIT_DIR

#!/bin/sh
cd /path/to/working-copy/ || exit
unset GIT_DIR
git pull repo branch

exec git-update-server-info