リモートサーバーで、リポジトリのgitチェックアウトを行うためにpost-receiveフックを設定しています。
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
しかし、ローカルマシンからサーバーのgitリポジトリにプッシュすると、次のエラーメッセージが表示されます。
remote: error: unable to unlink old '<file>' (Permission denied)
これは何度も表示され、ほぼすべてのファイルに対して1つのエラーメッセージが表示されます。
しかし、私はgitを使用して変更できるREADME.txtファイルを持っています。ここにその権限があります。
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
しかし、まったく同じ所有者と同じ権限を持つ他のファイルは、私にそのエラーを与えます。
別のWebサイトの別のローカルリポジトリには、ローカルマシンのユーザー名を所有者とするファイルがあり、リモートサーバーにプッシュすると、ファイルのリモートサーバーの所有者が尊重され、魅力のように機能します。
明らかにそれは権限関連のエラーのようですが、私はそれを修正する方法、何か提案を見つけることができませんか?
sudo chmod -R g+w
、罪のあるフォルダを使用して修正しました。