Gitプッシュエラー: 古いリンクを解除できません(権限が拒否されました)質問する

Gitプッシュエラー: 古いリンクを解除できません(権限が拒否されました)質問する

リモート サーバーでは、リポジトリの 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 サイトの別のローカル リポジトリには、ローカル マシンのユーザー名を所有者とするファイルがあり、リモート サーバーにプッシュすると、ファイルのリモート サーバーの所有者が尊重され、問題なく動作します。

明らかに権限関連のエラーのようですが、修正方法が見つかりません。何か提案はありますか?

ベストアンサー1

ファイルのリンクを解除する必要がある場合、ファイルではなく、ファイルが存在するディレクトリに対して「w」権限を持っている必要があります...

おすすめ記事