Как восстановить файлы после reset --hard?

Я закоммитил папку с файлами, но потом понял что не ту, решил отменить (git reset --hard HEAD~1, git push --force). После данная папка удалилась с GitHub, но при этом она пропала и в рабочем каталоге. Как ее восстановить?
  • Вопрос задан
  • 427 просмотров
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Восстановить очень легко, так как гит ничего не удаляет из репозитория, по крайней мере сразу.
Команда reset лишь переместила указатель ветки. Полностью удалить что-то крайне сложно.
Вы можете посмотреть через git reflog где был указатель до этого и вернуть его туда обратно.
git reset --hard HEAD@{1}
Данная команда вернёт ветку на состояние, помеченное на вашем скрине как HEAD@{1}
Либо можно скопировать непосредственно sha-хэш места, куда хотите вернуться.

Затем повторить отмену последнего коммита, но уже правильно:
git reset HEAD~1
Такая команда не будет изменять рабочий каталог, а значит ничего из него не удалит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro
frontend developer
git reset --hard HEAD~1
Это вы выполняли на своем компьютере?
Данная команда полностью очищает рабочий каталог. А в данном случае еще и последний коммит.
потом вы принудительно закинули эти изменения на гитхаб
git push --force
Теперь ваших файлов нет ни локально, ни на гитхабе.

Мораль: Не нужно тупо копировать команды из интернета. Нужно понимать, что они делают =)
Ответ написан
vabka
@vabka
Токсичный шарпист
Потому что ты сделал git reset --hard - он удаляет все файлы в тч.
Восстановить - мб в reflog остался тот коммит, но не обязательно.

https://git-scm.com/docs/git-reflog

Это тебе будет уроком, что не надо на любой чих делать reset --hard и push --force
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы