私はひどい間違いを犯し、「git reset --hard HEAD」を実行しました。一日中ローカルの変更が失われました。どうすれば回復できますか?
何百万人もありがとう
使用できますgit reflog
。HEAD
歴史を見せてくれます。の前に HEAD ステータスを表すハッシュを選択し、git reset --hard
このハッシュを別の で使用できますgit reset --hard
。
ローカルの変更をまだコミットしていない場合 (または、少なくとも を介してそれらをステージングしていない場合git add
、それらはなくなっていますgit reset --hard
) は、コミットされていない変更に対する破壊的な操作です。
たまたまそれらをステージングしたがコミットしなかった場合はgit fsck --lost-found
、次の内容を検索してみてください.git/lost-found
- 既知のコミットによって参照されていないすべてのオブジェクトが含まれており、ステージングされたファイルのバージョンが含まれている可能性があります.
あなたがgit add
編集しgit fsck --lost-found
たものは何でも回復できます.git/lost-found
. find .git/objects -type f | xargs ls -lt | sed 60q
リポジトリに追加される最後の 60 個のものが表示されます。これは役に立ちます。
削除しなかったものgit add
はすべて、自分で削除したかのように確実に消えます。
IDEに「ローカル履歴」のようなものがある場合(Eclipseにはこれがあり、IDEAにもAFAIKがあります)、おそらくこの方法で変更を回復できます。