ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

しまった!git rebaseをミスった!というときの解決法

今日はrebaseをミスってしまったのでやり直す方法をメモ。

すぐにためそう

git reset --hard ORIG_HEAD

コミットやマージをしてなければこれで大丈夫のはず。もうしてしまった?でもまだ諦めないで。

まだ大丈夫。

まず次のコマンドを打ちます。

git reflog

すると

f9016bf HEAD@{0}: rebase -i (finish): returning to refs/heads/feature/test-branch
f9016bf HEAD@{1}: rebase -i (squash): 編集終わり
6b13eb4 HEAD@{2}: checkout: moving from feature/test-branch to 6b13eb476ffe225a8335440faa12c848312b9ac02914099

みたいな感じのログが表示されます。上に行くほど新しいもので、HEAD@{n}ってところのnの数が大きいほど過去のものです。rebaseした前にの所に戻すのであればこうです。

git reset --hard HEAD@{2}

これでもとに戻っているはずです。