git のpost-updateスクリプトのなかで、git pullさせようとして、bashスクリプトの中で以下のコマンドを使った。
git -C /path/to/git/dir pull
この post-update スクリプトをサーバー側で実行しても何もエラーはでなかったが、いざクライアントからサーバーへ push してみるとエラーが出た。
$ git push
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 266 bytes | 266.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: fatal: Not a git repository: '.'
To hogehoge.fuga.jp:/path/to/sample.git
61c35e6..6a9db99 master -> master
GIT_DIR という環境変数が定義されていて、それが優先されているらしい。 post-updateスクリプトに、
unset GIT_DIR
を追加したら期待通りの動作になった。