1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】Git操作でやらかしたとき、ブランチを元の状態に戻す方法【git reflog, git reset】

Posted at

概要

Git操作でやらかしてしまったとき、git refloggit resetが役に立った。
この記事では、ミスの内容や解決方法など、学んだことを記録する。

ミスの内容

筆者がやってしまったミスは以下の2つ。

  • 自分の作業ブランチに、git pullすべきでないブランチの変更を取り込んでしまった
  • 本来作業すべきブランチとは別のブランチで作業を行い、git commitgit pushを行なってしまった

解決方法

どちらのミスも、git refloggit resetで解決することができた。

git reflogで操作履歴を確認

まず、git reflogでブランチのHEADを確認した。

git reflog

# 出力例:

# コミットハッシュ値 HEAD@{0}: commit: コミットコメント
# コミットハッシュ値 HEAD@{1}: commit (merge): Merge branch 'develop' into ブランチ名B
# コミットハッシュ値 HEAD@{2}: checkout: moving from ブランチ名A to ブランチ名B
# コミットハッシュ値 HEAD@{3}: commit (merge): Merge branch 'develop' into ブランチ名A

git resetで戻したい状態に戻す

次に、git resetでブランチを元の状態に戻した。

上記の出力例において、ブランチAからブランチBへ移動した状態に戻したい場合(developブランチからブランチBへのmergeはまだしていない状態)、下記のコマンドを実行する。

git reset --hard HEAD@{2}

まとめ

  • git reflog:Git操作履歴を確認
  • git reset --hard HEAD@{%インデックス番号%}:ブランチを元の状態に戻す
  • ミス防止対策:作業内容と作業ブランチが一致しているかを確認
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?