git status
しようとしたら、「fatal: index file smaller than expected」と怒られた。
原因は、多分仮想マシンが落ちたからだと思うけれど、直し方をメモしておきます。
以下作業ログ
リポジトリディレクトリは ~/lepus
とします。
$ git status fatal: index file smaller than expected $ cd .. $ cp -r lepus lepus-backup $ cd lepus $ rm .git/index
と、ここまですると治るみたいだけれども、残念ながらまだエラーがでてた。
$ git add -A error: object file .git/objects/a1/a1b2c3... is empty
なんか壊れてるっぽいので、empty なファイルを 1 つ 1 つ直していく。
$ git fsck --full (略) error: object file .git/objects/a1/a1b2c3... is empty $ rm .git/objects/a1/a1b2c3
調べると過去の履歴から復元しているのが多かったけど、
今回 commit してないものが壊れたので、履歴は存在しない。
ということで、別のやり方で。
$ git fsck --name-objects | grep missing (↓多分こんな感じだった) missing blob a1b2c3.... (app/controller/users_controller.rb) $ git rm --cached app/controllers/users_controller.rb $ git add app/controller/users_controller.rb
これを繰り返して、なくなったら修正完了。
合ってるかわからないけども、とりあえずちゃんとなってるからいいかな。
参考: