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 reflog

Въведете 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