Есть ли способ восстановить файлы моего проекта с помощью git.
Вот сценарий ....
Я работал на ветке в течение нескольких дней. Эта ветвь никогда не передавалась в удаленное хранилище , поэтому она полностью локальна.
В итоге я потерял свой файл решения .sln, поэтому больше не могу открыть проект, но в каталоге проекта у меня все еще есть каталог .git.
Если я запускаю git log, я вижу, что в нем перечислены коммиты задом наперед, поэтому кажется, что журналы существуют.
есть ли способ как-то найти файлы в этих журналах или восстановить мой проект на основе коммитов в журнале? Или есть другой способ?
UPDATE
Благодаря @RomainValeri, git checkout <commit-hash>
работает, но устанавливает HEAD в отключенное состояние. Хотя это может и не иметь большого значения, позже я обнаружил, что git reset --hard HEAD~1
работает лучше, поскольку мне не нужно сохранять изменения в последнем коммите, поэтому использование --hard
отбрасывает их. Если вам нужно сохранить эти изменения, вместо этого используйте --soft
, чтобы сбросить HEAD для вашего коммита до последнего коммита и добавить изменения в последнем коммите в промежуточную область.
git reset --hard HEAD~1
git reset --hard HEAD~2
git reset --hard HEAD~3
...
Вышеуказанные команды сбрасывают указатель HEAD 1, 2, 3, ... фиксирует перед последним коммитом и отменяет любые изменения после. Используйте --soft вместо --hard, если вы не хотите отменять эти изменения, в этом случае эти изменения будут подготовлены для вас.