リモートサーバーには、リポジトリのgitチェックアウトを行うために受信後フックを設定しています。
#!/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サイトの別のローカルリポジトリには、所有者としてローカルマシンのユーザー名を持つファイルがあり、リモートサーバーにプッシュすると、ファイルのリモートサーバー所有者が尊重され、チャームのように機能します。
明らかにそれはパーミッション関連のエラーのようですが、私はそれを修正する方法を見つけることができません、何か提案はありますか?
ファイルのリンクを解除する必要がある場合、ディレクトリのアクセス許可 'w'が必要です。このファイルでは、ファイルではなく...
Sudo chmod -R ug+w .;
このコマンドは問題を修正します。フォルダーへの書き込み許可を与えます。
IDEを使用している場合、問題はおそらくファイルが何らかのプロセスで使用されていることです。 Tomcatがファイルを使用している可能性があります。その特定のプロセスを特定し、閉じてみてください。これで問題が解決するはずです。
私は同じ問題を抱えていましたが、上記の解決策はどれもうまくいきませんでした。問題のフォルダーを削除しました。次に:
git reset --hard
残っているファイルを削除してgitステータスをクリーンアップしてから、次を実行しました。
git pull
ようやく機能しました。
注:たとえば、フォルダーがビルドファイルのあるパブリックフォルダーである場合は、必ずファイルを再構築してください
FWIW-同様の問題があり、これがそれを緩和したかどうかはわかりません(アクセス許可modを超えて):この問題でブランチを使用していたEclipseを閉じます。
これは古い質問ですが、これはMacユーザーに役立つかもしれません。
Time Machineからファイルを手動でコピーする場合、Time Machineを使用してファイルを復元する代わりに、すべてに ACLs を追加します。これにより、アクセス権が台無しになります。
たとえば、「 この記事 」の「Mac OS Xファイルのアクセス権を修正する方法」というセクションには、「全員」がカスタムアクセス権を持っていることが示されています。
これらのディレクトリ/ファイルからACLを削除する必要があります。 このスーパーユーザーの回答 に入りますが、コマンドは次のとおりです。
Sudo chmod -RN .
その後、ディレクトリとファイルに適切な権限があることを確認できます。ディレクトリには750
を、ファイルには644
を使用します。
私は問題がフォルダの所有権にあると思うので、現在のユーザーの所有権に設定してください
Sudo chown -R your_login_name /path/to/folder
git reset --hard
私のために働いた
(Intellijで)サーバーを実行しているときに、このエラーとその他の奇妙なgitエラーが発生します。サーバーを停止してgitコマンドを再試行すると、頻繁に修正されます。
引っ張ると、ローカルな変更が発生する場合があります。
追跡されていないファイルを追加します。
git add。
Stashの変更。
git stash
ローカルの変更を削除します。
git stashドロップ
須藤許可でプル
Sudo git pullリモートブランチ
一部のファイルは、gitでさえ上書きできない書き込み保護されています。フォルダのアクセス許可を変更して、書き込みなどを許可します。 sudo chmod 775フォルダー名
そして、再びgit pull
また、ルートディレクトリ自体の許可を必ず確認してください。
あなたは見つけるかもしれません:
drwxr-xr-x 9 not-you www-data 4096 Aug 8 16:36 ./
-rw-r--r-- 1 you www-data 3012 Aug 8 16:36 README.txt
-rw-r--r-- 1 you www-data 3012 Aug 8 16:36 UPDATE.txt
「許可が拒否されました」というエラーが表示されます。