post-receive フックを使用してリモート サーバーを更新しようとしています。私はsshを使用していますが、すべてがうまく機能します(実行するgit pull
と実際にプルされます)。私はこの deploy.phpと他のコマンド ( など) から始めましgit status
たが、期待どおりに実行および出力されますが、プルはまったく何もしていないようです。
私はchown
すべて (git リポジトリ、known_hosts など) を徹底的に編集したので、私の www-data ユーザーはサーバー上のほぼすべてのものにアクセスできるはずです。何がうまくいかないのか、少なくともいくつかのエラーログを見つける方法はありますか?
edit : adder によって提案されたように変更git pull
した後、出力に変化は見られません。git pull --verbose
出力はまだです:
$ whoami
www-data
$ git pull --verbose
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# deploy.php
nothing added to commit but untracked files present (use "git add" to track)
解決策: github に ssh できるように apache ユーザーをセットアップする必要があります。root として接続していたのですが、post-receive フック ターゲットが同じ更新を行うことができなかったときに混乱しました。私はルートとして実行していましたが、スクリプトは www-data として実行されていました。