Git checkout восстановить потерянные файлы

Я случайно удалил локальные изменения файлов в репозитории git. Они НЕ были совершены или даже подтолкнуты.

Что я сделал: git status (тогда отображались файлы, не подготовленные для фиксации, и я случайно удалил всю папку с именем «smdr» с помощью этой команды): git checkout -- smdr

Потом файлы изменений исчезли.

Как я могу восстановить эти файлы (вернуть все обратно до этой команды git checkout -- smdr)?


person Community    schedule 04.06.2015    source источник
comment
Если они не были зафиксированы, лучше всего проверить Корзину или Корзину на любом компьютере, на котором находились локальные файлы. Если вы используете Windows, вы можете вернуться к предыдущим версиям в свойствах папки (если эта функция включена)   -  person Avantol13    schedule 04.06.2015
comment
@Avantol13, когда вы удаляете что-то в cli, вы обычно никогда не можете найти это обратно в корзине.   -  person edi9999    schedule 04.06.2015


Ответы (2)


Вы не можете с Git. Файлы не были зафиксированы, поэтому их нет в истории. Вы только что получили (несуществующую) версию в индексе с git checkout.

Ваша единственная надежда - это ваша резервная система.

person Matthieu Moy    schedule 04.06.2015
comment
Если вы ранее спрятали (и выбросили), и вы знаете, что содержимое было бы частью тайника. Затем попытайтесь восстановить тайник. Таким образом можно будет хотя бы частично восстановить файлы, затронутые git checkout. - person vallentin; 03.09.2019

Вы можете использовать любой из предложенных вариантов:

Git рефлог

Введите git reflog и проверьте нужный коммит, он вернет ваш репозиторий к удаленному коммиту.

Git вернуться

Другой вариант — использовать git revert SHA-1, который вернет вашу фиксацию. Это просто отменит ваши изменения

Git сбросить

Git reset проверит содержимое данного sha-1. Это установит вашу ветку в то же состояние, что и SHA-1.

person CodeWizard    schedule 04.06.2015
comment
но мои локальные изменения не были зафиксированы? Могу ли я использовать один из них в любом случае? - person ; 04.06.2015
comment
Нет, ты не можешь. Все эти команды имеют дело с зафиксированной историей. - person Matthieu Moy; 04.06.2015