Jaka jest różnica między git reset –mixed, –soft i –hard?

Jaka Jest Roznica Miedzy Git Reset Mixed Soft I Hard



W Git każde zatwierdzenie jest powiązane z poprzednim zatwierdzeniem, a HEAD wskazuje na ostatnie zatwierdzenie w gałęzi roboczej. Historia zatwierdzeń jest przechowywana jako drzewo zatwierdzeń. Jednak czasami programiści muszą zmodyfikować historię zatwierdzeń. W tym celu „ $ git reset ” służy do modyfikowania historii repozytorium Git i naprawiania błędów, które zostały popełnione.

W tym artykule pokrótce wyjaśnimy różnicę między git reset –hard, –soft i –mixed.

Jaka jest różnica między git reset –mixed, –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. Wszystkie modyfikują historię Git i cofają HEAD. Co więcej, inaczej radzą sobie ze zmianami, np.:







  • -miękki ” opcja używana z „ $ git reset ”, aby zachować pliki i zwrócić zmiany zatwierdzenia do indeksu pomostowego Git.
  • $ git reset – mieszane ” służy do cofnięcia zmian zatwierdzenia i usunięcia pliku z indeksu pomostowego bez usuwania go z katalogu roboczego.
  • -ciężko ” z opcją „ $ git reset Polecenie ” służy do usuwania wszystkich zmian i usuwania 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, korzystając z „ Płyta CD ' Komenda:



$ Płyta CD 'C:\Go \t is_repo'





Krok 2: Utwórz plik

Teraz wykonaj podane poniżej polecenie, aby utworzyć plik:

$ dotykać Plik4.txt



Krok 3: Dodaj plik do indeksu przemieszczania

Użyj ' git dodaj ”, aby dodać nowo wygenerowany plik do indeksu pomostowego:

$ git dodaj Plik4.txt

Krok 4: Zatwierdź zmiany

Następnie dodaj wszystkie zmiany do działającego repozytorium, wykonując polecenie „ git zatwierdzenie ' Komenda:

$ git zatwierdzenie -m „Dodano plik 4”

Krok 5: Sprawdź dziennik Git

Następnie sprawdź historię dziennika Git, aby wyświetlić najnowsze zatwierdzenia, które zostały dodane:

$ dziennik git

Na poniższym wyjściu widać, że wyświetlane są wszystkie ostatnio dodane zatwierdzenia, a „ GŁOWA ” wskazuje na ostatnie zatwierdzenie:

Uwaga: Aby dokładniej sprawdzić bieżącą pozycję głowicy HEAD, wykonaj polecenie „ dziennik git ” polecenie wraz z „ -jedna linia ' flaga:

$ dziennik git --online

Poniżej podane dane wyjściowe pokazują listę skrótów SHA zatwierdzenia z komunikatami zatwierdzenia:

Krok 6: Użyj komendy git reset –soft

Aby przywrócić dodane zmiany z repozytorium Git do indeksu pomostowego, użyj „ zresetuj git ” wraz z poleceniem „– miękki ” i określ żądaną pozycję HEAD, w której wymagane jest przesunięcie wskaźnika:

$ zresetuj git --miękki GŁOWA~ 1

Krok 7: Sprawdź status Git

Teraz zweryfikuj odwracaną pozycję HEAD, sprawdź status repozytorium Git:

$ status gita

Widać, że „ git reset – miękki ” zwróciło zmiany zatwierdzenia do indeksu pomostowego Git. Ponadto „ Plik4.txt ” znajduje się teraz w indeksie pomostowym Git i musi zostać zatwierdzony:

Krok 8: Sprawdź dziennik Git

Aby wyświetlić aktualną pozycję HEAD, uruchom podane polecenie wraz z „ -jedna linia ' opcja:

$ dziennik git --online

Tutaj GŁOWA wskazuje na „ Plik3 ' popełniać:

Krok 9: Użyj polecenia git reset — mieszane polecenie

Aby cofnąć zatwierdzone zmiany i usunąć pliki z obszaru przemieszczania bez usuwania ich z katalogu roboczego, wykonaj polecenie „ $ git reset – mieszane ” wraz z wymaganą pozycją HEAD zatwierdzenia:

$ zresetuj git --mieszany GŁOWA~ 1

Krok 10: Sprawdź status Git

Zobacz nowo dodane zmiany, sprawdzając stan repozytorium Git:

$ status gita

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

Krok 11: Sprawdź dziennik Git

Sprawdź historię dziennika referencyjnego repozytorium Git wraz z hashem SHA:

$ dziennik git --online

Krok 12: Użyj git reset — twarde polecenie

Aby usunąć dodane zmiany z lokalnego katalogu roboczego Git, wykonaj polecenie „ $ git reset – trudne ' Komenda:

$ zresetuj git --ciężko GŁOWA~ 1

Krok 13: Zweryfikuj odwrócony wskaźnik HEAD

Aby zweryfikować wskaźnik HEAD, wróć do określonej pozycji, uruchom „ dziennik git ' Komenda:

$ dziennik git --online

Poniższe dane wyjściowe pokazują, że HEAD wskazuje na „ Dodano plik 1 ' popełniać:

Krok 14: Sprawdź status Git

Aby zobaczyć dodane zmiany, sprawdź status Git:

$ status gita

Widać, że nie mamy żadnych utworów i oczekujących zmian „ Plik2.txt ' plik. Dlatego plik File2.txt został całkowicie usunięty:

Krok 15: Sprawdź listę zawartości repozytorium

Aby zweryfikować listę zawartości repozytorium, uruchom „ ls ' Komenda:

$ ls

Jak widać, „ Plik2.txt ” plik nie istnieje w bieżącym katalogu:

Wyjaśniliśmy różnicę między opcjami git reset –mixed, –soft i –hard.

Wniosek

zresetuj git ” służy do resetowania zmian, modyfikowania historii repozytorium Git i poprawiania błędów. „ git reset – miękki ” polecenie zachowuje pliki i zwraca zmiany zatwierdzenia do obszaru pomostowego Git. Natomiast „ git reset – mieszane ” cofnij zmiany zatwierdzenia i usuń plik z indeksu pomostowego bez usuwania go z katalogu roboczego. Aby usunąć wszystkie zmiany i usunąć je z obszaru roboczego Git, „ git reset – trudne można użyć polecenia ”. W tym artykule zilustrowano różnicę między git reset –mixed, –soft i –hard.