誤ってgit resetしてしまった際の処置
誤ってコミットした内容を闇に消し去ってしまうことってよくありますよね。(’A’
そんな時の処置を紹介します。
まずどんな時にこんなことが起こるのかというと、
- よし、コミットするぞ!あ、間違ったブランチにコミットしてしまった。
- 取り消すためにgit reset –hard HEAD^
- 作業内容が闇に消えてしもうた。。。
- 取り消すためにgit reset –hard HEAD^
- このコミットいらないなー。戻そう。
- git reset –hard HEAD^^
- 必要なものまで消えてしもうた。。。
- git reset –hard HEAD^^
っていう時です。
git resetするとgit logからは消えてもう復元できないんじゃないかって思いますが、
そんな時に使えるのがreflogというもの。
reflogとは何かっていうと、簡単に言えば操作履歴なども記載している詳細なログで
git resetした内容も確認することができるのです!
実際に確認すると、
$ git reflog
このコマンドでログ確認できます。
ba3334e (HEAD -> fix_branch, origin/master, origin/HEAD, master) HEAD@{0}: reset: moving to HEAD^^
2a2654e HEAD@{1}: commit: xxxの修正
634e1d1 HEAD@{2}: commit: xxxの実装
こんなログが確認できるので、誤ったgit resetの前のHEAD@{1}に戻すため
git reset --hard HEAD@{1}
このコマンド実行で誤ったgit reset前まで戻すことができます!
他にもreflogを使えば、誤った操作(ブランチ削除等)も取り戻すことができるので、
非常時には是非活用してみてください。