Nie musisz ich „pobierać ponownie”, ponieważ cała historia repozytorium istnieje lokalnie, gdy używasz Git.
cdhowie
czy wiesz, jak je zdobyć z lokalnego?
Charlie Parker
Odpowiedzi:
164
Ponieważ git jest rozproszonym systemem VCS, Twoje lokalne repozytorium zawiera wszystkie informacje. Pobieranie nie jest konieczne; wystarczy wyodrębnić żądaną zawartość z repozytorium na wyciągnięcie ręki.
Jeśli nie zatwierdziłeś usunięcia, po prostu wyewidencjonuj pliki z bieżącego zatwierdzenia:
git checkout HEAD <path>
Jeśli zatwierdziłeś usunięcie, musisz wypisać pliki z zatwierdzenia, które je zawiera. Przypuszczalnie byłoby to poprzednie zatwierdzenie:
git checkout HEAD^ <path>
ale jeśli zostało nzatwierdzone wcześniej, użyj HEAD~nlub po prostu uruchom gitk, znajdź SHA1 odpowiedniego zatwierdzenia i wklej go.
jako komentarz boczny, działa to również dla pełnego katalogu, nie jest to specjalny ani specyficzny dla pojedynczego pliku (działał przynajmniej, gdy próbowałem). Thnx przy okazji.
Charlie Parker
5
NB <path>jest obowiązkowe, nawet jeśli tylko .kropka dla bieżącego reż. Ale „gałąź” ( HEADw powyższym przykładzie) jest opcjonalna. Podobnie jak w przypadku wielu poleceń Git, ani dane wyjściowe, ani pomoc nie są pomocne.
ostrzeżenie jednak przy używaniu git reset --hardmetody, ponieważ spowoduje to powrót całego drzewa do lokalizacji, w której umieścisz HEAD / HEAD ^ / HEAD ~ n, a zrobi to bez uprzedzeń i potencjalnie straci wiele zatwierdzeń ...
g19fanatic
git checkout nazwa pliku była dla mnie odpowiedzią :)
Ruub
git checkout nazwa pliku tworzy tylko pusty plik
mrek
umieszczony w wybranym folderze i git checkount .działał jak urok!
hzitoun
21
Jeśli usunąłeś lokalnie wiele plików, ale nie zostały one zatwierdzone, możesz wymusić wypisanie
Jak widać z wyjścia „Już aktualne”, osoba zadająca to pytanie w ostatnim czasie nic nie popełniła. Czy może powinieneś określić, że git checkout -f HEAD jest NIEBEZPIECZNY? Ponieważ może cofnąć lokalne zmiany, które nie zostały zatwierdzone (przywrócenie poprzednich plików jest wynikiem pozytywnym, utrata zmian w edytowanych plikach jest wynikiem negatywnym).
Lionel Trebuchon
15
Jeśli usunąłeś wiele plików lokalnie i nie zatwierdziłeś zmian, przejdź do ścieżki lokalnego repozytorium, otwórz powłokę git i wpisz.
$ git checkout HEAD .
Wszystkie usunięte pliki przed ostatnim zatwierdzeniem zostaną odzyskane.
Dodawanie „.” przywróci wszystkie usunięte pliki z bieżącego repozytorium do odpowiednich ścieżek.
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją .
Odpowiedzi:
Ponieważ git jest rozproszonym systemem VCS, Twoje lokalne repozytorium zawiera wszystkie informacje. Pobieranie nie jest konieczne; wystarczy wyodrębnić żądaną zawartość z repozytorium na wyciągnięcie ręki.
Jeśli nie zatwierdziłeś usunięcia, po prostu wyewidencjonuj pliki z bieżącego zatwierdzenia:
Jeśli zatwierdziłeś usunięcie, musisz wypisać pliki z zatwierdzenia, które je zawiera. Przypuszczalnie byłoby to poprzednie zatwierdzenie:
ale jeśli zostało
n
zatwierdzone wcześniej, użyjHEAD~n
lub po prostu uruchomgitk
, znajdź SHA1 odpowiedniego zatwierdzenia i wklej go.źródło
<path>
jest obowiązkowe, nawet jeśli tylko.
kropka dla bieżącego reż. Ale „gałąź” (HEAD
w powyższym przykładzie) jest opcjonalna. Podobnie jak w przypadku wielu poleceń Git, ani dane wyjściowe, ani pomoc nie są pomocne.git checkout filename
git reset --hard
też może załatwić sprawęźródło
git reset --hard
metody, ponieważ spowoduje to powrót całego drzewa do lokalizacji, w której umieścisz HEAD / HEAD ^ / HEAD ~ n, a zrobi to bez uprzedzeń i potencjalnie straci wiele zatwierdzeń ...git checkount .
działał jak urok!Jeśli usunąłeś lokalnie wiele plików, ale nie zostały one zatwierdzone, możesz wymusić wypisanie
źródło
Jeśli usunąłeś wiele plików lokalnie i nie zatwierdziłeś zmian, przejdź do ścieżki lokalnego repozytorium, otwórz powłokę git i wpisz.
Wszystkie usunięte pliki przed ostatnim zatwierdzeniem zostaną odzyskane.
Dodawanie „.” przywróci wszystkie usunięte pliki z bieżącego repozytorium do odpowiednich ścieżek.
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją .
źródło
Musisz wypisać poprzednią wersję sprzed usunięcia plików. Spróbuj
git checkout HEAD^
pobrać ostatnią wersję.źródło
Dodam również, aby wykonać następujące kroki, aby repozytorium git było poprawnie połączone z IDE:
Mam nadzieję, że to było pomocne!
źródło