dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[git]git reset を取り消す(git reflogの使い方)

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}

とする。

リファレンス

Git/git reflog (git resetを取り消す) - yanor.net/wiki

いざという時のためのgit reflog - Qiita