2014-04-28 13 views
5

Jestem nowy w git. Mam pliki kasowe ze zdalnego. Musiałem usunąć kilka plików z repozytorium git. Zamiast wykonywać polecenie git rm, wydałem polecenie unix rm -rf folder. Muszę przywrócić polecenie delete, a następnie wykonać polecenie git rm. Jak powrócić do najnowszego kodu?git cofnąć usunięte pliki

Uwaga: Jeszcze nie popełnił wystawił files.The się z git status lista plików usuniętych w poniższym formacie:

# deleted: i18n/angular-locale_sl.js 
# deleted: i18n/angular-locale_in.js 
+1

Jeśli już usunięty folder git powinien wykryć, że już wystarczy trzeba przeprowadzić etap usuwania. Jaki jest wynik działania 'git status'? –

+0

możliwy duplikat [Przywróć usunięty plik w repozytorium Git] (http://stackoverflow.com/questions/953481/restore-a-deleted-file-in-a-git-popo) – indivisible

+0

Możliwy duplikat [How do odrzucasz niezaprogramowane zmiany w git?] (http://stackoverflow.com/questions/52704/how-do-you-discard-startaged-changes-in-git) –

Odpowiedz

6

muszę cofnąć polecenie Usuń, a następnie wykonać Polecenie git rm. Jak powrócić do najnowszego kodu?

Wystarczy zrobić (ponieważ nie popełnił niczego):

cd /root/of/your/repo 
git checkout HEAD -- . 

To przywróci drzewo roboczą do indeksu.

(A git reset --hard powinno działać też, ale nie jest potrzebne tutaj)

Ale można też zarejestrować te skreślenia do indeksu bezpośrednio:

git add -A . 

Patrz "What's the difference between git add . and git add -u?"

0

Do uzupełnij odpowiedź @VonC,

Musiałem usunąć kilka plików z t on git repo. Zamiast robić polecenie git rm, wydałem polecenie Folder -rf Unix rm

Jedyna różnica między tymi dwiema opcjami jest git rm można również usunąć pliki z indeksu git. Jednak ponieważ nigdy nie dodałeś ich do indeksu, nie ma żadnego szczególnego powodu, aby używać git rm, i nie musisz cofać zwykłego /bin/rm.

1

Jeśli wystawił usunięcie najpierw unstage go:

git reset HEAD path/to/deleted/file 

Następnie przywrócić plik:

git checkout path/to/deleted/file