5

По неопытности сделал git reset --hard HEAD~2 , когда было всего 2 коммита(не было ни одного pushа к тому времени, только файлы в локальной репе), не знал, что это целиком захватывает файлы:(, в результате получил пустую директорию с .git (600мб), можно ли восстановить файлы?!, если да, то как?Или как-нибудь вернуться на 1 коммит после? Сроки горят, очень нужно! Не доверяйте этой статье! https://habrahabr.ru/post/138590/

Nick Volynkin
  • 34,094
Xambey
  • 1,052

1 Answers1

10

да, скорее всего можно. Выполните команду git reflog - это лог Вашей локальной работы. Там Вы как раз увидите свои sha хеши коммитов. Теперь можно попробовать сделать git checkout <shaхеш> - то есть где то так git checkout ab1cd3. Если Вам повезет, то сорцы будут восстановлены. А дальше от этого можно сделать новую ветку (git branch recovery) и работать как обычно.

KoVadim
  • 112,121
  • 6
  • 94
  • 160
  • 1
    кланяюсь в ноги, целую, не знаю как отблагодарить!!! СПАСИБО!!! Вы спасли мой отпуск!) – Xambey Jul 25 '16 at 07:40
  • 1
    на будущее - если начитались умных статей и решили поэкспериментировать с репозиторием, вначале создайте ветку для "восстановления" - git branch savepoint (имя бранча может быть любое, но делать нужно в той ветке (или ветках, но тогда имя "savepoint" должны быть разные), которую будете модифицировать. В этом случае всегда можно будет откатиться (ну почти всегда). – KoVadim Jul 25 '16 at 07:43
  • обычно так и делал, но тут забыл, мало спал, еще раз спасибо! – Xambey Jul 25 '16 at 07:45