Jak cofnąć ostatnie zatwierdzenie Git

Cofanie ostatniego zatwierdzenia Git jest częstym zadaniem programistów chcących cofnąć zmiany lub poprawić błędy. Git udostępnia kilka metod cofania ostatniego zatwierdzenia, co pozwala zachować przejrzystą i dokładną historię projektu. Metody te obejmują resetowanie, cofanie lub modyfikowanie zatwierdzeń, a każda z nich służy innym celom w zależności od tego, czy chcesz zachować, czy odrzucić zmiany.

Ten przewodnik pokaże, jak cofnąć ostatnie zatwierdzenie Git, korzystając z praktycznych przykładów. Opanowując te techniki, możesz efektywnie zarządzać swoją historią Git i mieć pewność, że Twój projekt pozostanie dobrze zorganizowany i wolny od błędów.

Zrozumienie zatwierdzenia Git

Zanim odkryjemy, jak cofnąć zatwierdzenie Git, ważne jest, aby zrozumieć, co oznacza zatwierdzenie w Git. Zatwierdzenie reprezentuje migawkę Twojej pracy w określonym momencie. Zawiera wszystkie modyfikacje dokonane od ostatniego zatwierdzenia. Każde zatwierdzenie jest jednoznacznie identyfikowane za pomocą skrótu SHA-1, umożliwiając Gitowi przechowywanie historii zmian.

Odwracanie zatwierdzenia Git

Istnieją dwie podstawowe techniki odwracania zatwierdzenia Git: git reset i git revert. Omówimy szczegółowo każdą metodę, w tym jej przypadki użycia i implikacje.

git reset --soft HEAD~1

Używanie git reset

Polecenie git reset to potężne narzędzie, które pozwala przenieść lub „zresetować” bieżącą HEAD do określonego stanu. Oto jak go użyć do cofnięcia ostatniego zatwierdzenia:

git reset --soft HEAD~1

W tym poleceniu –soft zapewnia zachowanie zmian w obszarze przejściowym, a HEAD~1 odnosi się do zatwierdzenia poprzedzającego bieżące. Zmiany wynikające z cofniętego zatwierdzenia pozostaną w katalogu roboczym i obszarze przejściowym.

Oto przykładowe wyjście:

Unstaged changes after reset:
M    file1.txt
M    file2.txt

Oznacza to, że zmiany w plikach file1.txt i file2.txt nie są teraz przygotowane.

Jeśli chcesz całkowicie odrzucić zatwierdzenie i wszystkie powiązane zmiany, możesz użyć opcji –hard:

git reset --hard HEAD~1

Zachowaj ostrożność podczas korzystania z tego polecenia, ponieważ trwale odrzuca ono wszystkie zmiany wprowadzone w wyniku ostatniego zatwierdzenia.

Korzystanie z git revert

Komenda git revert tworzy nowe zatwierdzenie, które cofa zmiany wprowadzone w poprzednim zatwierdzeniu. Jest to bezpieczny sposób na cofanie zmian, ponieważ nie zmienia istniejącej historii zatwierdzeń. Oto jak możesz z niego skorzystać:

git revert HEAD

To polecenie utworzy nowe zatwierdzenie, które cofnie zmiany wprowadzone w ostatnim zatwierdzeniu.

Oto przykładowe wyjście:

[master 0a9b2aa] Revert "Add new feature"
 1 file changed, 1 insertion(+), 2 deletions(-)

Oznacza to, że utworzono nowe zatwierdzenie, które cofa zmiany z poprzedniego zatwierdzenia.

Cofanie zatwierdzenia Git: rozszerzone przykłady

Korzystanie z git reset: więcej przykładów

Resetowanie do określonego zatwierdzenia

Jeśli chcesz cofnąć nie tylko ostatnie zatwierdzenie, ale kilka zatwierdzeń, możesz to zrobić, podając skrót zatwierdzenia zamiast HEAD~1. Na przykład:

git reset --soft 9fceb02

To polecenie przeniesie HEAD do zatwierdzenia określonego przez skrót 9fceb02, a zmiany ze wszystkich zatwierdzeń po 9fceb02 zostaną zachowane w obszarze przejściowym.

Resetowanie niestacjonarnych zmian

Jeśli dokonałeś zmian, ale jeszcze ich nie zatwierdziłeś i chcesz je cofnąć, możesz użyć git reset bez odniesienia do zatwierdzenia:

git reset --hard

To polecenie cofnie wszystkie niezastosowane zmiany, przywracając katalog roboczy do stanu ostatniego zatwierdzenia.

Korzystanie z git revert: więcej przykładów

Cofanie zakresu zatwierdzeń

Jeśli chcesz cofnąć zakres zatwierdzeń, możesz określić zakres za pomocą polecenia git revert. Na przykład:

git revert HEAD~3..HEAD

To polecenie utworzy nowe zatwierdzenia, które cofną zmiany wprowadzone w trzech ostatnich zatwierdzeniach.

Cofanie określonego zatwierdzenia

Jeśli chcesz cofnąć konkretne zatwierdzenie, które nie jest najnowsze, możesz to zrobić, podając skrót zatwierdzenia:

git revert 9fceb02

To polecenie utworzy nowe zatwierdzenie, które cofnie zmiany wprowadzone w zatwierdzeniu określonym przez skrót 9fceb02.

Wniosek

Git to potężne narzędzie, a jego złożoność może być zniechęcająca dla początkujących. Jednak mając jasne zrozumienie, jak cofnąć zatwierdzenie, możesz pewnie poruszać się po Gicie. To, czy zdecydujesz się użyć git reset, czy git revert, zależy od Twoich konkretnych potrzeb i konsekwencji każdego polecenia. Pamiętaj, że kluczem do opanowania Gita jest praktyka i eksploracja.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)
Kategorie Git

Dodaj komentarz