誤ってgit resetしてしまった際の処置

誤ってコミットした内容を闇に消し去ってしまうことってよくありますよね。(’A’

そんな時の処置を紹介します。


まずどんな時にこんなことが起こるのかというと、

  • よし、コミットするぞ!あ、間違ったブランチにコミットしてしまった。
    • 取り消すために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を使えば、誤った操作(ブランチ削除等)も取り戻すことができるので、

非常時には是非活用してみてください。

カテゴリー: git

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください