git reflog

git reflogとは

git log では見ることのできないような HEAD,ブランチ先頭の移動履歴やgit resetなどによる履歴の変更を履歴として保存している。 これが役立つのは例えば

$ git log
38e735d3c 外部請求IDの編集
39b3272b4 無効な計上金額
23c3920j2 不具合調整
$ git reset --hard @^^
$ git log
23c3920j2 不具合調整
//上の二つのコミットが見れなくなった!

このようにあやまって git reset –hard をしてしまった時、git reflogを使えば簡単に元に戻す事ができる

$ git reflog
78c0446e9 HEAD@{0}: reset: moving to @^^
38e735d3c HEAD@{1}: commit: 外部請求IDの編集
39b3272b4 HEAD@{2}: commit: 無効な計上金額
23c3920j2 HEAD@{3}: commit: 不具合調整
$ git reset --hard HEAD@{1}
$ git log
38e735d3c 外部請求IDの編集
39b3272b4 無効な計上金額
23c3920j2 不具合調整
//元どおり!!

助かった、、