LoginSignup
272
273

More than 5 years have passed since last update.

git add したあと、commit するの忘れてて reset --hard しちゃったけど、取り戻したい

Last updated at Posted at 2013-05-24

やっちまった〜
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 奥が深い……

272
273
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
272
273