git reset --hardでミスった内容を取戻したいときはgit reflog

例えばgit reset --hard HEAD^で誤操作して内容を消してしまった、それを取戻したいときは

  • git reflogで取戻したい[email protected]{x}の番号を確認
  • git reset --hard [email protected]{1}で番号指定でもう一回git reset(ここでは例として1番にしてる)

reflogの定義は

a log of where your HEAD and branch references have been for the last few months.

いわば自分のローカルリポジトリのHEADが指していた情報を全部保存したログです。ブランチの切り替えやpull、コミットなどの情報がローカルで保存されるんです。

  • git log -g: でgit log*のフォーマット(コミットログやコミット者の情報)で表示できます。

参考:
http://d.hatena.ne.jp/idesaku/20091106/1257507849
http://progit.org/book/ch6-1.html#reflog_shortnames

2011年10月26日(水) Git, Git, git-reflog, git-reset

Share on Twitter Share
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。
他にも英語中国語で書いてます、よろしければチェックしてみてください。