ローカルリポジトリに変更をコミットしようとすると、次のメッセージが表示されます。
致命的:new_indexファイルを書き込めません
この スレッドが示す のように、これは通常、ディスク容量の問題です。
$ git status
fatal: unable to write new_index file
私が見つけたこの原因の1つは、ファイルシステムの容量が不足していたことです。
次のような大きなディレクトリを見つけると、暴走したログファイルをクリーンアップするのに役立ちました。
$ du -h / | grep ^[0-9.]*G
注:次の場合にも表示されます
問題がまだ残っているので、SysinternalsSuiteからファイルモニターを実行しました。
Eclipseは常にインデックスファイルにアクセスしており、コマンドラインgitをブロックしているようです
ええ、WindowsDefenderが再び攻撃したようです。私はいつもそのいまいましいことを無効にすることを忘れています。それがどれほど壊れているか信じられない。自宅でBlu-ray再生を破壊し、職場でGitを壊します...
TortoiseGitを使用している場合、このエラー(または最近では:エラー:インデックスを書き込めません。)はTortoiseGitアイコンオーバーレイ有効。アイコンオーバーレイを無効にするには、次の場所に移動します。
TortoiseGit>設定>アイコンオーバーレイ
ステータスキャッシュをなしに設定します。これはTortoiseGitの将来のバージョンで修正される可能性がありますが、今のところ一般的であるようです。
Sshfsがマウントされたgitリポジトリをマージしているときに同じエラーが発生していました。どこにもスペース不足はありませんでした。
私の場合の解決策は、sshfsmountコマンドに-oworkaround = renameオプションを追加することでした。
同様に:sshfs -o idmap = user -o uid = [lokal uid] -o gid = [lokal gid] -o workaround = rename [Host]:[mountpoint]
Cygwinとgit-svnを使用してこのエラーが発生しました。私のために働いた解決策は、ガベージコレクションを行うことでした(当時のように奇妙でした):
$ git gc
私は解決策を見つけました。ディスク容量を解放する必要があります。
私も同じ問題を抱えていました。私の場合、上記の解決策は機能しませんでした。
このエラーの背後にある理由は、ファイル.git/index
何らかの理由で破損しました。ファイルの名前を別の名前に変更して、「gitadd」を実行しました。 gitbashからのコマンドで動作しました。
これが誰かを助けることを願っています。
私にとって、それはファイルロックの問題でした。
それを解決するために私は:
お役に立てれば!
この問題が発生していましたが、msysgitでコミットできました。 tortoisegitを更新しましたが、msysgitのバージョンがtortoisegitと同期していないことにも気づきました。最新バージョンで修正されたのか、それとも異なるバージョンのカメとmsysgitが原因だったのかはわかりません。とにかく、チェックする別のこと。両方をTortoiseGit1.7.10.0gitバージョン1.7.10.msysgit.1に更新した後にすべてが機能し始めました
.git\index.lock
で nlocker を使用して、他のプロセスによって開いたままになっているハンドルのロックを解除しました。私の場合はTGitCache.exeでした。
MacOSでも同じ問題が発生しましたが、repo_folder/.git/index.lock
を削除することで解決しました。