Git
Odzyskiwanie
Szukaj…
Odzyskiwanie z utraconego zatwierdzenia
W przypadku powrotu do poprzedniego zatwierdzenia i zgubienia nowego zatwierdzenia, możesz odzyskać utracone zatwierdzenie przez uruchomienie
git reflog
Następnie znajdź zgubiony zatwierdzenie i zresetuj go, wykonując polecenie
git reset HEAD --hard <sha1-of-commit>
Przywróć usunięty plik po zatwierdzeniu
W przypadku, gdy przypadkowo zatwierdziłeś usunięcie pliku, a później zdałeś sobie sprawę, że potrzebujesz go z powrotem.
Najpierw znajdź identyfikator zatwierdzenia, który usunął twój plik.
git log --diff-filter=D --summary
Otrzymasz posortowane podsumowanie zatwierdzeń, które usunęły pliki.
Następnie przejdź do przywracania pliku przez
git checkout 81eeccf~1 <your-lost-file-name>
(Zamień 81eeccf na swój własny identyfikator zatwierdzenia)
Przywróć plik do poprzedniej wersji
Aby przywrócić plik do poprzedniej wersji, możesz użyć reset
.
git reset <sha1-of-commit> <file-name>
Jeśli dokonałeś już lokalnych zmian w pliku (których nie potrzebujesz!), Możesz również użyć opcji --hard
Odzyskaj usunięty oddział
Aby odzyskać usuniętą gałąź, musisz znaleźć zatwierdzenie, które było głową usuniętej gałęzi, uruchamiając
git reflog
Następnie możesz ponownie utworzyć gałąź, uruchamiając
git checkout -b <branch-name> <sha1-of-commit>
Nie będziesz w stanie odzyskać usuniętych gałęzi, jeśli kolektor śmieci gita usunął zwisające zatwierdzenia - te bez referencji. Zawsze miej kopię zapasową swojego repozytorium, szczególnie gdy pracujesz w małym zespole / własnym projekcie
Odzyskiwanie po resecie
Dzięki Git możesz (prawie) zawsze cofnąć zegar
Nie bój się eksperymentować z poleceniami, które przepisują historię *. Git domyślnie nie usuwa twoich zatwierdzeń przez 90 dni, aw tym czasie możesz łatwo odzyskać je z rejestru:
$ git reset @~3 # go back 3 commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* Uważaj na opcje takie jak - --hard
i - --force
- mogą one jednak odrzucić dane.
* Unikaj także przepisywania historii w oddziałach, z którymi współpracujesz.
Odzyskaj z zapasów git
Aby uzyskać najnowszą skrytkę po uruchomieniu skrytki git, użyj
git stash apply
Aby zobaczyć listę swoich skrytek, użyj
git stash list
Otrzymasz listę, która wygląda mniej więcej tak
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Wybierz inną skrytkę git, którą chcesz przywrócić, z liczbą wyświetlaną dla żądanej skrytki
git stash apply stash@{2}
Możesz także wybrać opcję „git stash pop”, działa to tak samo jak „git stash Apply” jak…
git stash pop
lub
git stash pop stash@{2}
Różnica w git stash stosuje się i git stash pop ...
git stash pop : - dane skrytki zostaną usunięte ze stosu listy skrytek.
Dawny:-
git stash list
Otrzymasz listę, która wygląda mniej więcej tak
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Teraz pop ukryj dane za pomocą polecenia
git stash pop
Ponownie Sprawdź listę skrytek
git stash list
Otrzymasz listę, która wygląda mniej więcej tak
stash@{0}: WIP on master: 70f0d95 Add user role to localStorage on user login
Możesz zobaczyć, że jeden ukryty dane został usunięty (usunięty) z listy ukrytych i ukryty @ {1} stał się ukryty @ {0}.