Odzyskiwanie określonych danych przy użyciu poleceń usługi Git

Ukończone

Możliwość odzyskania danych przy użyciu poleceń git jest bardzo ważna dla deweloperów. Ułatwia cofnięcie przypadkowych zmian, przywrócenie usuniętych plików lub odzyskanie utraconych zatwierdzeń. Ułatwia to zminimalizowanie nieoczekiwanych problemów i bezproblemowe działanie projektu. Ważne jest jednak, aby zachować ostrożność. W przypadku używania poleceń usługi Git opisanych w tej sekcji należy zachować ostrożność, szczególnie w przypadku zmiany historii zatwierdzeń lub przywracania zmian, ponieważ błędy mogą spowodować utratę danych.

Polecenia odzyskiwania danych Git

Polecenia usługi Git na potrzeby odzyskiwania danych można pogrupować w kilka kategorii: odzyskiwanie zatwierdzeń, plików, określonych wierszy kodu i usuniętych zatwierdzeń lub gałęzi.

Odzyskiwanie zatwierdzeń

  • dziennik git — pokazuje historię zatwierdzeń repozytorium. Możesz przejrzeć dziennik, aby znaleźć zatwierdzenie, które chcesz odzyskać.
  • git checkout <commit> — przełącza się do określonego zatwierdzenia, w praktyce „przywracając” stan repozytorium w tym zatwierdzeniu.
  • git cherry-pick <commit> — stosuje zmiany z określonego zatwierdzenia do bieżącej gałęzi.

Odzyskiwanie plików

  • git checkout <commit><file> - Przywraca określony plik z poprzedniego zatwierdzenia.
  • git restore <plik> — odrzuca zmiany lokalne i przywraca plik do jego ostatniego zatwierdzonego stanu (działa tylko wtedy, jeśli nie zatwierdziłeś jeszcze zmian).

Odzyskiwanie określonych wierszy kodu

  • git blame <plik> — pokazuje rewizję i autora każdego wiersza w pliku, pomagając znaleźć commit, który wprowadził określoną zmianę.
  • git show <commit>:<file> — pokazuje zawartość pliku w określonym commicie. Możesz określić zatwierdzenie i ścieżkę pliku, aby zobaczyć zawartość tak, jak w tym czasie.

Odzyskiwanie usuniętych zatwierdzeń lub gałęzi

  • git reflog — pokazuje rekord wszystkich zatwierdzeń. Można go użyć do znalezienia skrótu SHA-1 wcześniej usuniętego zatwierdzenia lub gałęzi, a następnie wyewidencjonowania lub przywrócenia go.
  • git fsck --lost-found — sprawdza integralność repozytorium i wyświetla listę zatwierdzeń, które nie są osiągalne z żadnej gałęzi lub tagu. Możesz go użyć do odzyskania utraconych zatwierdzeń.

Pamiętaj, aby ostrożnie używać tych poleceń, zwłaszcza podczas zmieniania historii zatwierdzeń lub przywracania zmian. Przed rozpoczęciem zawsze utwórz kopię zapasową repozytorium lub użyj polecenia git stash , aby zapisać bieżące zmiany przed podjęciem próby przeprowadzenia operacji odzyskiwania.

Przykładowy scenariusz

Przyjrzyjmy się przykładowemu scenariuszowi, w ramach którego pokazano, jak odzyskać usunięty plik za pomocą poleceń Git. Załóżmy, że plik o nazwie example.txt w repozytorium Git został przypadkowo usunięty i musisz go odzyskać.

Wyświetlanie historii zatwierdzń:

  • Zacznij od wyświetlania historii zatwierdzń:git log
  • W historii zatwierdzeń znajdź skrót SHA-1 zatwierdzenia, w którym plik example.txt był ostatnio obecny.

Przywracanie usuniętego pliku:

  • Po znalezieniu skrótu SHA-1 commit użyj polecenia git checkout, aby przywrócić plik:git checkout <commit_SHA>^ -- example.txt
  • Zastąp <commit_SHA> wartość skrótem SHA-1 zatwierdzenia. Symbol ^ oznacza rodzica tego commitu, skutecznie przywracając plik do stanu sprzed usunięcia.

Weryfikowanie zmian:

  • Po przywróceniu pliku sprawdź, czy został pomyślnie przywrócony, sprawdzając stan repozytorium:git status
  • Sprawdź, czy example.txt jest wyświetlana jako zmodyfikowany lub nieśledzony plik.

Przygotowywanie do zatwierdzenia i zatwierdzanie zmian:

  • Jeśli plik jest wymieniony jako zmodyfikowany, przygotuj go do zatwierdzenia:git add example.txt
  • Zatwierdź zmiany za pomocą jasnego komunikatu zatwierdzenia:git commit -m "Restored example.txt"