git で「fatal: index file smaller than expected」というエラーがでた!?

このエントリーをはてなブックマークに追加

先日、git を普通に使っていたKさんの画面に、謎のエラーが!

「fatal: index file smaller than expected」

特に何かを変更したわけでもなにもなく、突然でたとのことで私にヘルプが!

いくら対処法をさがしてもなかなか見つからなかったのですが、ようやく解決したのでメモ。

「fatal: index file smaller than expected」?

とりあえず、書いている内容どおりで検索をしてみる。

git - index file smaller than expected - Stack OverflowHow to fix git "fatal: index file smaller than expected"

いろいろと探しても .git/index を削除もしくは移動して新規でファイル追加しようみたいな解決方法がでてきた。

とりあえず、移動させてみることに

.git/index を移動

$ mv .git/index .git/index.backup
$ git reset HEAD

結果・・・なんか大量の modified 表示がでてきた!!!

だめだ( TДT)

clone しなおしてみることに

なんか大量の modified 表示がでてきたので・・・cloneし直すかーという考えに。

エラーの出たディレクトリはのこしたまま、別ディレクトリに新規でclone をしてみることに

$ git clone xxx
fatal: index-pack failed

ふぁっ!?

なぜかcloneもエラー!?

再度チェック、コミットしてみるか

clone もできないっぽくなっていることもあり、何がおかしいかわからないので、再度先ほど移動したファイルをもどしてチェック。

$ mv .git/index .git/index.backup
$ git reset HEAD
$ git add .
$ git commit -am "TEST commit"
fatal: unable to write new_index file

おお・・・

コミットもできない!?おやぁ?ってところまできて、ファイルの容量をチェックすることに。

$ df -h

結果、使用量 100% の空き 0 !

もしや、これか!空き容量が、ない!!!

結果

不要ファイルを削除して一気に容量をあけて、再度 commit したところ無事通過。

一応 そのコミットは別ブランチで作業していたため、マージせずに破棄して作りなおして終了。ディスクの容量がなくなってったことで発生していた問題でした。

都合で VM 環境上に作業環境をおいていたのでもともと容量が少ない場所だったのですが、まさかもう0になっているなんて。

いろいろと悩みましたが勉強になりました。

掲載写真

Photographer
Roo Reynolds
License
Creative Commons (BY-NC)