目次

GitでRevertしたら、ローカルの作業ファイルが編集前の状態に戻ってしまった。ファイルを復活させたい (git reflog の利用)

GitでRevertを実行し、ファイルが編集前の状態に戻ってしまった場合に復帰させたい場合の対処法を紹介します。

現象

GitでCommitを実行後、Commitを取り消すため、Revertを実行した際にローカルの作業ファイルが元の状態に戻ってしまう場合があります。
作業前の状態ではなく作業後のCommit直前の状態に復帰させたいですが、手順がわかりにくい場合がありますので紹介します。
補足
Commitを取り消す場合は、Revertではなくreset --mixed コマンドで戻す方法が適切です。詳しくは以下の記事を参照してください。

操作方法

コマンドプロンプトで以下のGitコマンドを実行します。
git reflog

以下の画面が出力されます。


ログを見て戻りたい状態の番号のコマンドを実行します。
git reset --hard HEAD@{(番号)}
上記の例で、Revert直前の状態に戻る場合は、以下のコマンドを実行します。
git reset --hard HEAD@{3}
メモ
reset --hardコマンドを使用するため、念のためローカルリポジトリのバックアップをしておくとよいかもしれません。

コマンドを実行すると、作業ファイルを以前の状態に戻すことができます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2023-11-24
iPentec all rights reserverd.