git reset
でうっかり必要以上にresetしちゃった時に、これを戻す方法。
git reflog
というコマンドを使うらしい。
今、
$ git log --oneline
87f07c0 modify file.txt
6d97e80 add comment on README
5fc6db0 first commit
という3つのコミットがあって、
git reset HEAD~~
で2つ前のコミットに戻ったんだけど、
今のgit reset
を取り消すには、
$ git reflog 5fc6db0 HEAD@{0}: reset: moving to HEAD~~ 87f07c0 HEAD@{1}: commit: modify file.txt 6d97e80 HEAD@{2}: commit: add comment on README 5fc6db0 HEAD@{3}: commit (initial): first commit
というように、git reflog
を実行するとgit reset
したのも含めたログが表示されるので、
git reset
したコミットHEAD@{0}
の1つ前を指定して
$ git reset HEAD@{1}
とする。