web-dev-qa-db-ja.com

GIT:「致命的:コミット中にnew_indexファイルを書き込めません」

ローカルリポジトリに変更をコミットしようとすると、次のメッセージが表示されます。
致命的:new_indexファイルを書き込めません

24
Stepan Kuzmin

この スレッドが示す のように、これは通常、ディスク容量の問題です。

$ git status
fatal: unable to write new_index file

私が見つけたこの原因の1つは、ファイルシステムの容量が不足していたことです。
次のような大きなディレクトリを見つけると、暴走したログファイルをクリーンアップするのに役立ちました。

$ du -h / | grep ^[0-9.]*G

注:次の場合にも表示されます

問題がまだ残っているので、SysinternalsSuiteからファイルモニターを実行しました。
Eclipseは常にインデックスファイルにアクセスしており、コマンドラインgitをブロックしているようです

ええ、WindowsDefenderが再び攻撃したようです。私はいつもそのいまいましいことを無効にすることを忘れています。それがどれほど壊れているか信じられない。自宅でBlu-ray再生を破壊し、職場でGitを壊します...

30
VonC

TortoiseGitを使用している場合、このエラー(または最近では:エラー:インデックスを書き込めません。)はTortoiseGitアイコンオーバーレイ有効。アイコンオーバーレイを無効にするには、次の場所に移動します。

TortoiseGit>設定>アイコンオーバーレイ

ステータスキャッシュなしに設定します。これはTortoiseGitの将来のバージョンで修正される可能性がありますが、今のところ一般的であるようです。

14
Justin M. Keyes

Sshfsがマウントされたgitリポジトリをマージしているときに同じエラーが発生していました。どこにもスペース不足はありませんでした。

私の場合の解決策は、sshfsmountコマンドに-oworkaround = renameオプションを追加することでした。

同様に:sshfs -o idmap = user -o uid = [lokal uid] -o gid = [lokal gid] -o workaround = rename [Host]:[mountpoint]

7
Phluks

Cygwinとgit-svnを使用してこのエラーが発生しました。私のために働いた解決策は、ガベージコレクションを行うことでした(当時のように奇妙でした):

 
 $ git gc 
 
3
skybert

私は解決策を見つけました。ディスク容量を解放する必要があります。

3
Stepan Kuzmin

私も同じ問題を抱えていました。私の場合、上記の解決策は機能しませんでした。

このエラーの背後にある理由は、ファイル.git/index何らかの理由で破損しました。ファイルの名前を別の名前に変更して、「gitadd」を実行しました。 gitbashからのコマンドで動作しました。

これが誰かを助けることを願っています。

2
philomath

私にとって、それはファイルロックの問題でした。

それを解決するために私は:

  1. インデックスファイル(非表示の「.git」フォルダーにあります)をコピーしました
  2. オリジナルを削除しました
  3. コピーの名前を「インデックス」に戻しました

お役に立てれば!

2
Cossens

この問題が発生していましたが、msysgitでコミットできました。 tortoisegitを更新しましたが、msysgitのバージョンがtortoisegitと同期していないことにも気づきました。最新バージョンで修正されたのか、それとも異なるバージョンのカメとmsysgitが原因だったのかはわかりません。とにかく、チェックする別のこと。両方をTortoiseGit1.7.10.0gitバージョン1.7.10.msysgit.1に更新した後にすべてが機能し始めました

1
Duane McKinney

.git\index.locknlocker を使用して、他のプロセスによって開いたままになっているハンドルのロックを解除しました。私の場合はTGitCache.exeでした。

0
Rami A.

MacOSでも同じ問題が発生しましたが、repo_folder/.git/index.lockを削除することで解決しました。

0
alec_djinn