やっちまった〜
commit してたら最強の味方 reflog 使えるけど add しかしてないしなぁ……
でも、git は objectdb だし、add している時点で 何処かに保存されているはず!!
と思って調べたら git fsck
を発見!!
どこにも属してないものが見れる!! やった!!
これで hash
とれるので git unpack-file
で内容だけは復元できる!!
つまり
$ git fsck | grep blob | cut -d ' ' -f3 | xargs git unpack-file
ってやるとどこにも管理されてないファイルがとりあえず復元します。
.merge_file_KhsjP3
みたいな名前になっているので、ファイル開いて中身はなんとか救出できた!!
もっと良い方法あったら教えて下さい>< って社内ブログに書いたら
上のワンライナーと同じことが実現できる
git fsck --lost-found
というのがあります。 参考: http://git-scm.com/docs/git-fsck
って教えてもらった!!
超便利〜
git 奥が深い……