LoginSignup
0
0

More than 3 years have passed since last update.

git commitで前のコミットへ戻し、変更をなかったことにする方法

Last updated at Posted at 2021-04-23

〜過去へ戻りたいそんなあなたへ〜

・過去への想いがたまらないあなたへ、操作方法を紹介したいと思います。
・git commit 取り消し操作を間違えてしまった、必要だったコミットが履歴に見当たらなくなってしまうことがあります。

・なんだか全部もう何もかも嫌になって「あの頃からすべてやり直せたら」という気もちになる時、そんなときは「git reflog」が便利です。git reflog はHEADを含む「参照」の移動をすべて記録しています。過去の好きなタイミングに帰ることができます。

いまのブランチのすべてのコミット歴史を表示

・過去の行いが見れます。

git reflog

・デフォルトではHEADの移動をすべて表示します。

d1ef3b2 (HEAD -> 投稿返信#37, origin/change#32, change#32) HEAD@{0}: reset: moving to HEAD@{4}
1ae45e2 (origin/投稿返信#37) HEAD@{1}: commit: 投稿返信機能途中#37
d57a169 (origin/main, password-reset#35, main) HEAD@{2}: checkout: moving from main to 投稿返信#37
d57a169 (origin/main, password-reset#35, main) HEAD@{3}: pull origin main: Fast-forward
02399c6 HEAD@{4}: checkout: moving from change#32 to main
d1ef3b2 (HEAD -> 投稿返信#37, origin/change#32, change#32) HEAD@{5}: commit: 変更を取り消す
83fa867 HEAD@{6}: commit: 変更取り消し
deb3e70 HEAD@{7}: checkout: moving from main to change#32
02399c6 HEAD@{8}: reset: moving to 02399c6f3a6ecf39ca2dc0587a8078bb2518df6f
fa03150 (origin/images#34, images#34) HEAD@{9}: reset: moving to HEAD

・HEAD@{xx}というのは、過去何番目のHEADの状態ということですかね?
・元に戻したいポイントがわかれば、git reset --hard で強制的に巻き戻します。

// 指定のコミットに、ブランチ状態を強制上書き。全部取り消し。
git reset --hard HEAD@{4}

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0