QA@IT

git reset --hard で元に戻った作業中のファイルを復旧する方法

4793 PV

git reset --hard HEAD~1 でコミットを取り消したところ、作業中のファイルもcheckout時点の状態に巻き戻ってしまいました。
コミットしたファイルに関しては git reflog で復旧させることができるのですが、コミットしていない作業中のファイルについて復旧する方法はあるのでしょうか?

作業手順は以下のような流れです。

vi 色んなファイルを編集
git commit <path>
vi 色んなファイルを編集
git reset --hard HEAD~1

=> 作業途中のファイルまで巻き戻る
  • 補足です。
    vimについてはバックアップやスワップファイルを保存しない設定にしていました。また、OSのバックアップなども取得しておらず、バックアップからの復旧も難しい状況です。
    -

回答

コミットしていないファイルについては、Gitはその変更情報を保持していないため復旧はできません。

編集 履歴 (0)
  • ありがとうございます。やはりそうなのですね…。
    コミットは細かい粒度でやるべきだと改めて痛感しました。
    -

RubyMineであればLocal Historyから復旧することができます。この際、vから始まるエディタを捨ててRubyMine移行するのはいかがでしょうか。

編集 履歴 (0)
  • 遠慮しておきます -
ウォッチ

この質問への回答やコメントをメールでお知らせします。