2016年 初春。
アルコール漬けのチンピラからプログラマに転身した私が覚えたトリックを備忘録兼ねてまとめるTips_ Git編
- git reset
- git reflog
間違えてコミットしちゃった。やり直したい。って時。
Subversionだとローカルの変更を取り消すupdateかければよかったんだけど、gitだと以下のようにresetコマンドで戻る。
git reset --hard HEAD~
で、コミットが無かったことになる。
んだけど、今度は、やべえ間違えてリセットしちまったって事がある。
そんな時はgit reflog
って呪文がある。
git reflog
9999999 HEAD@{0}: reset: moving to HEAD~
9999999 HEAD@{1}: commit: 3回目のコミット
9999999 HEAD@{2}: commit: 不具合修正
9999999 HEAD@{3}: commit: 最初のコミット(機能改善)
9999999 HEAD@{4}: checkout: moving from master to test-branch
こんな感じで、過去のコミット履歴を遡ることができる。
そこで、戻るべきコミット(例えば不具合修正に戻りたい)を指定して、
再び git reset
`を唱える。
git reset --hard "HEAD@{2}"
rebase失敗したり、間違ってコミットが全部台無しになったときでも焦らない。
さすがgit