Jaka jest różnica między resetem git -zmieszanym, -soft i -hard?

Jaka jest różnica między resetem git -zmieszanym, -soft i -hard?
W GIT każde zatwierdzenie jest powiązane z poprzednim zatwierdzeniem, a główny wskazuje na najnowsze zatwierdzenie w oddziale roboczym. Historia zatwierdzenia jest przechowywana jako drzewo zobowiązań. Czasami jednak programiści muszą zmodyfikować historię zatwierdzenia. W tym celu „$ git reset”Polecenie służy do modyfikacji historii repozytorium GIT i naprawy popełnionych błędów.

W tym artykule krótko wyjaśni różnicę między resetem git -Hard, -soft i -MIXED.

Jaka jest różnica między resetem git -zmieszanym, -soft i -hard?

Git zapewnia wiele opcji resetowania. Na podstawie tego, jak radzą sobie z zatwierdzeniami, wszystkie dostępne opcje różnią się od siebie. Wszyscy modyfikują historię git i odsuwają głowę. Ponadto radzą sobie z zmianami inaczej, na przykład:

  • „„-miękki„Opcja używana z„$ git reset”Polecenie, aby zachować pliki i zwrócić zmiany zatwierdzenia do indeksu inscenizacji GIT.
  • "$ git reset -mieced”Służy do cofnięcia zmian zatwierdzenia i usunięcia pliku z indeksu inscenizacji bez usuwania go z katalogu roboczego.
  • „„-twardy„Opcja z„$ git reset„Polecenie służy do usuwania wszystkich zmian i usunięcia ich z lokalnego katalogu roboczego.

Weźmy przykład, aby zobaczyć, jak „$ git reset„Polecenie działa z różnymi opcjami!

Krok 1: Przejdź do żądanego repozytorium GIT

Najpierw przejdź do żądanego repozytorium GIT, wykorzystując „płyta CD" Komenda:

$ cd "c: \ git \ test_repo"

Krok 2: Utwórz plik

Teraz wykonaj poniższe polecenie, aby utworzyć plik:

$ Touch File4.tekst

Krok 3: Dodaj plik do indeksu inscenizacji

Użyj "Git dodaj”Polecenie, aby dodać nowo wygenerowany plik do indeksu inscenizacji:

$ git dodaj plik4.tekst

Krok 4: Zmiany popełniania

Następnie dodaj wszystkie zmiany do działającego repozytorium, wykonując „git zatwierdzić" Komenda:

$ git commit -m "plik 4 dodano"

Krok 5: Sprawdź dziennik git

Następnie sprawdź historię dziennika git, aby wyświetlić najnowsze dodane zatwierdzenia:

$ git log

W poniższym wyjściu można zauważyć, że wszystkie najnowsze dodane zatrudnienia są wyświetlane oraz „„ ”GŁOWA„Wskazuje na najnowsze zatwierdzenie:

Notatka: Aby lepiej sprawdzić bieżącą pozycję wskazującą głowę, wykonaj „Git Log”Polecenie wraz z„-jedna linia" flaga:

$ git log -linia

Poniżej podane dane wyjściowe pokazuje listę hash zatwierdzenia z komunikatami zatwierdzenia:

Krok 6: Użyj GIT RESET -SOFT Command

Aby przywrócić dodane zmiany z repozytorium GIT do wskaźnika stopnia stopnia, użyj „Git Reset”Polecenie wraz z„-miękki„Opcja i określ żądaną pozycję głowy, w której musi przesunąć wskaźnik:

$ git reset -Soft Head ~ 1

Krok 7: Sprawdź status GIT

Teraz zweryfikuj pozycję powracającą głowicy Sprawdź status repozytorium GIT:

Status $ git

Widać, że „Git Reset -soft”Polecenie zwróciło zmiany zatwierdzenia w indeksie zaawansowania GIT. Co więcej, „Plik4.tekst„Plik znajduje się teraz w indeksie inscenizacji GIT i należy go popełnić:

Krok 8: Sprawdź dziennik git

Aby wyświetlić bieżącą pozycję głowy, uruchom podane polecenie wraz z „-jedna linia" opcja:

$ git log -linia

Tutaj głowa wskazuje na „Plik3" popełniać:

Krok 9: Użyj resetowania git - mieszane polecenie

Aby cofnąć popełnione zmiany i usunąć pliki z obszaru inscenizacji bez usuwania z nich z katalogu roboczego, wykonaj „$ git reset -mieced”Polecenie wraz z wymaganą pozycją główną zatwierdzenia:

$ git reset -mieszana głowa ~ 1

Krok 10: Sprawdź status GIT

Zobacz nowo dodane zmiany, sprawdzając status repozytorium GIT:

Status $ git

Można zauważyć, że określone zmiany zatwierdzenia są usuwane z obszaru zaawansowania. Są one jednak umieszczane w obszarze roboczym:

Krok 11: Sprawdź dziennik git

Sprawdź historię dziennika referencyjnego GIT wraz z Hash SHA:

$ git log -linia

Krok 12: Użyj resetowania git - twarde polecenie

Aby usunąć dodatkowe zmiany z lokalnego katalogu roboczego GIT, wykonaj „$ git reset -Hard" Komenda:

$ git reset -twarda głowa ~ 1

Krok 13: Sprawdź wskaźnik rewerkowany

Aby zweryfikować wskaźnik głowy, powróć do określonej pozycji, uruchom „Git Log" Komenda:

$ git log -linia

Poniżej wyjście pokazuje, że głowa wskazuje na „Dodano plik1" popełniać:

Krok 14: Sprawdź status GIT

Aby wyświetlić dodane zmiany, sprawdź status GIT:

Status $ git

Można zauważyć, że nie mamy żadnej ścieżki i oczekujących zmian „Plik2.tekst" plik. Dlatego plik2.TXT został całkowicie usunięty:

Krok 15: Sprawdź listę treści repozytorium

Aby zweryfikować listę treści repozytorium, uruchom „LS" Komenda:

$ ls

Jak widać, „Plik2.tekst„Plik nie istnieje w bieżącym katalogu:

Wyjaśniliśmy różnicę między opcjami resetowania git, -soft i -hard.

Wniosek

„„Git Reset”Polecenie służy do zresetowania zmian, modyfikacji historii repozytorium GIT i naprawy błędów. „„Git Reset -soft„Polecenie przechowuje pliki i zwraca zmiany zatwierdzenia w obszarze inscenizacji GIT. Natomiast „Git Reset -Mixed”Polecenie cofnie zmiany zatwierdzenia i usuń plik z indeksu inscenizacji bez usunięcia go z katalogu roboczego. Aby usunąć wszystkie zmiany i usunąć je z obszaru roboczego Git, „Git Reset -Hard„Można użyć polecenia. W tym artykule ilustruje różnicę między resetem git -MIXED, -soft i -Hard.