私は以下の問題があります。私は特定のディレクトリにCDに「-受け取るポスト」を更新し、その後、そのようにそれを展開することでレポを引っ張ってきた:私は私のローカルマシン上に「Gitのプッシュ原点マスター」を実行するたびにgit post-receiveが正しく動作しない
#!/bin/bash
cd /var/www/site
git pull origin master
は、しかし、私は取得します次:まだ
Counting objects: 5, done.
Delta compression using up to 2 threads.
(etc..)
remote: fatal: Not a git repository: '.'
とき、私は手動でCD /var/www/site
に、それは見事に働くgit pull origin master
を行います。
#!/bin/bash
cd /var/www/site || exit
unset GIT_DIR
git pull origin master
exec git-update-server-info
を次のように
、私は必要なものだけ。なぜこれを行う必要があるのか説明してもらえますか? – andy
'GIT_DIR'は、さまざまなgitコマンドに設定できる環境変数の1つです。ポスト受信フックでは、 '$ GIT_DIR'は常に(?)が' .'にセットされます。他の場所で 'cd'しても、' git pull'は '$ GIT_DIR'が' .'に設定されているのを見て、 '.'でリポジトリを見つけようとしますが、あなたは移動しました。これをクリアすると、gitは "通常の"動作に戻ります( './。git'を見て、あなたが' cd'-edされた場所で)。 – torek