11

私はひどい間違いを犯し、「git reset --hard HEAD」を実行しました。一日中ローカルの変更が失われました。どうすれば回復できますか?

何百万人もありがとう

4

6 に答える 6

30

使用できますgit reflogHEAD歴史を見せてくれます。の前に HEAD ステータスを表すハッシュを選択し、git reset --hardこのハッシュを別の で使用できますgit reset --hard

于 2013-01-10T06:59:29.267 に答える
17

ローカルの変更をまだコミットしていない場合 (または、少なくとも を介してそれらをステージングしていない場合git add、それらはなくなっていますgit reset --hard) は、コミットされていない変更に対する破壊的な操作です。

たまたまそれらをステージングしたがコミットしなかった場合はgit fsck --lost-found、次の内容を検索してみてください.git/lost-found- 既知のコミットによって参照されていないすべてのオブジェクトが含まれており、ステージングされたファイルのバージョンが含まれている可能性があります.

于 2013-01-10T05:18:31.157 に答える
4

あなたがgit add編集しgit fsck --lost-foundたものは何でも回復できます.git/lost-found. find .git/objects -type f | xargs ls -lt | sed 60qリポジトリに追加される最後の 60 個のものが表示されます。これは役に立ちます。

削除しなかったものgit addはすべて、自分で削除したかのように確実に消えます。

于 2013-01-10T05:19:41.827 に答える
1

IDEに「ローカル履歴」のようなものがある場合(Eclipseにはこれがあり、IDEAにもAFAIKがあります)、おそらくこの方法で変更を回復できます。

于 2013-01-10T06:34:52.010 に答える