🗿

git reset --hard でコミット前のローカルファイルが全部消えた

2023/06/24に公開

git reset --hardでローカルの変更内容が全部吹っ飛んでしまった時の話です。

事の発端については、ローカル環境でブランチ切らずにDevelopに直接コミットしたことに気がついて
あ、しまった...元に戻そうと思い、カッコつけてgit reset --hardを実行したことが悪夢の始まりでした。
(そもそもコミット途中でも普通にブランチ切って対応すれば問題なかった)

いくつかブログを回って情報収集するも、消えてしまったファイルは元に戻せない、コミットしていないファイルはそもそも復元できないみたいな情報しかなく、途方に暮れるばかり。、、

念のため検索ワードを全部英語にしてStackOverFlowにたどり着きましたが、、、回答を見るとやはり復元は不可能っぽく、git reflog showで失われたファイルを探せみたいな回答も。。
しかし、回答をよく見ると「youのIDEに履歴が残っているはず」と書かれている。

自分はAndroidStudio使いなので、これは!と思い早速LocalHistoryメニューを見ると
Gitが勝手に消してくれたファイルが履歴に残ってるじゃありませんか!

めでたくAndroidStudioを使って失われたファイルを取り戻すことが出来ましたとさ。
やはりコミットする前は常にStashする癖をつけましょう!

参考
https://stackoverflow.com/a/5788069
https://pleiades.io/help/idea/local-history.html

Discussion