GIT で間違ってコミットしてしまったりすると、元に戻す方法が必要です。
これは、やたらよく使うGIT コマンド。
git reset --hard HEAD^
基本編だが、「HEAD」は現在のブランチの先頭コミットを指す。「HEAD^」は現在のブランチの先頭の「一個前」を指します。「HEAD^^」は2つ前です。
reset(オプション無し) は作業ディレクトリはそのままで、ステージしたファイル(addしたやつら)を全部クリアしてくれる。reset xxxxxxとコミットを指定すれば、ステージをクリーンにして、そのコミット番号の素の状態にできる。というわけだ。
オプション付きの、reset --hardは作業ディレクトリを含めて全部戻してくれる。
もし作業中のファイルを保存しておきかったらstashとかして寄せて置かないと、すべてを失うので要注意だ。(これはあとで元に戻せない)
reset --softは使った事無いのでよくわかんない。
で、まちがってreset --hardしてやばい、間違った。。そんな時も、大丈夫。
リセットしようが何しようが、「これまでのすべてのコミット」が記録されている。
git reflog
で過去のコミットが本当にすべてリストされる。
git reset --hard HEAD@{0}とかやれば、結局、あらゆるコミットに行ったり来たり出来る訳だ。