そのため、最近、Windowsは私にいくつかのトローリングを行い、私のgitリポジトリにコミットできないようにすることを決定しました
Git(Cygwin)でこのエラーが発生します:
$ git commit -a
error: insufficient permission for adding an object to repository database .git/objects
error: NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml: failed to insert into database
error: unable to index file NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml
fatal: updating files failed
ええと...しかし、私はNVG510Fixerフォルダーに移動し、そこにあるすべての所有権を再帰的に取得して、Everyoneが完全に制御できることを確認します。これは機能しているように見えますが、エラーが消えることはありません。そこで、.git
に移動し、プロパティを右クリックして、そこから所有権を(再帰的に)取得することにしました。この時点で、それはさらに奇妙になります:
Windowsは一体何をしているのですか?!私は管理者です。このコンピューターはドメインに参加していません。ほんの数分前にアクセスできたファイルにアクセスできないのはどうしてですか!?
管理コマンドラインから takeown
コマンドを使用します。 AdministratorsグループへのFull Access
権限を削除することは可能です。その場合、GUIバージョンは権限を変更できませんが、コマンドラインコマンドは変更できます。
takeown /f C:\dev\nvg510controls\.git /r /d Y
さらに凝ったものにしたい場合は、権限を設定できます コマンドライン経由 も
icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)
これらのコマンドのどちらも機能しない場合は、ダウンロード PsExec そしてコマンドを実行します
psexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)
これは、AdministratorユーザーではなくSYSTEMユーザーとしてicacls
を実行します。
それが誰かを助けるかどうかはわかりませんが、Gitがファイルにアクセスする権限を持っていないという問題があり、上記の答えを試しても成功しなかったことに注意してください。
問題は、かなり新しいサーバーで、エンタープライズウイルスチェッカーがGitプロセスから.gitディレクトリで多くのアクティビティを検出し、Gitを疑わしいプロセスとしてマークし、ファイルへのアクセスを許可しなくなったことです。
所有者を他の誰かに戻し、再帰的に自分自身に戻してみてください。それは一般的に私にとってトリックを行います。これは、サブフォルダーとファイルにアクセスできず、.gitフォルダーにしかアクセスできないことが原因である可能性があります。所有者を変更し、すべてのサブフォルダーオプションを選択します。次に、同じツリーオプションを有効にして権限を変更し、機能するかどうかを確認します