Я только что потерял две недели работы из-за сброса git --hard HEAD ^.Есть ли способ вернуть его? - PullRequest
0 голосов
/ 11 июля 2019

Я сделал коммит с большой работой и случайно с папкой изображений, которая была огромной.Затем я сделал git reset --hard HEAD ^ и подумал, что он просто удалит коммит.Но оказалось, что это также удалило всю работу, которую я проделал ... огромный облом.

Теперь, я прочитал сотни сообщений о восстановлении после этой конкретной аварии.Но что бы я ни пытался, я просто не могу восстановить все отредактированные файлы и папки, которые я создал за последние дни.

КАК я могу заставить git вернуть мне потерянные файлы?

ХОРОШО.Очевидно, что здесь явно перегружены работой ...

git add .

И затем, увидев свою ошибку, я сделал:

git reset --hard HEAD^

Да, тут все пошло не так.

Как мне восстановиться после этой ситуации?

1 Ответ

1 голос
/ 11 июля 2019

После того, как git fsck --lost-found расскажет вам обо всех «висячих каплях», которые он сохранил, посмотрите в .git/fsck/lost-found/other.Здесь много файлов с совершенно бесполезными именами (на самом деле это просто хэш-идентификаторы), но с содержимым файлов, которые у вас были git add -ed, которых еще не было в вашем хранилище.

Вы можете либопросмотрите файлы, как они есть, или скопируйте или переместите их во временную область в другом месте.Вы должны посмотреть на каждый файл, выяснить, какое у него должно быть имя или хотите ли вы вообще его сохранить, и, если это так, дать ему лучшее имя.

Исходные имена файлов not сохранено в любом месте Git (они были в вашем индексе, но git reset --hard перезаписал этот индекс текущим индексом).(Они были бы сохранены после коммита, если бы вы сделали коммит.)

...