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 gitNa 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 --onlinePoniż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 gitaWidać, ż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 --onlineTutaj 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 gitaMoż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 --onlinePoniż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 gitaWidać, ż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:
$ lsJak 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.