1. ホーム
  2. git

[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。

2022-02-05 22:42:11

質問

リモートサーバーで、私のリポジトリの git checkout を行うために post-receive フックをセットアップしています。

#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f

しかし、ローカルマシンからサーバー内のgitリポジトリにpushを行うと、以下のようなエラーメッセージが表示されます。

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

しかし、全く同じ所有者、同じパーミッションの他のファイルでは、このエラーが発生するのです。

別のウェブサイトのための別のローカルリポジトリで、私は所有者として私のローカルマシンのユーザー名を持つファイルを持ち、リモートサーバーにプッシュすると、ファイルのリモートサーバーの所有者を尊重し、魅力のように動作します。

明らかにパーミッションに関連するエラーのようですが、修正する方法が見つかりません、何か提案はありますか?

解決方法は?

ファイルへのリンクを解除する場合、ファイルではなく、ファイルが存在するディレクトリのパーミッションが「w」でなければなりません。