Menu
Coddy logo textTech

Git: cofanie ostatniego commita

Ostatnia aktualizacja

Żeby cofnąć najnowszy commit, zdecyduj, co ma się stać z jego zmianami. Zachowaj je w poczekalni przez git reset --soft HEAD~1, zachowaj je poza poczekalnią przez zwykłe git reset HEAD~1 albo wyrzuć je przez git reset --hard HEAD~1. Jeśli commit jest tylko trochę nie taki, git commit --amend poprawi go w miejscu. Jeśli jest już wypchnięty, użyj git revert zamiast przepisywać historię. Żeby cofnąć starszy commit albo kilka naraz, zobacz stronę git undo commit.

Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.

Cofnięcie ostatniego commita przesuwa HEAD o krok wstecz; tryb decyduje, czy zmiany zostaną w przechowalni, poza nią, czy zostaną odrzucone.

Wybierz, co zrobić ze zmianami

CelPolecenie
Cofnąć commit, zmiany zostają w poczekalnigit reset --soft HEAD~1
Cofnąć commit, zmiany zostają poza poczekalniągit reset HEAD~1
Cofnąć commit, odrzucić zmianygit reset --hard HEAD~1
Poprawić ostatni commit (wiadomość albo pliki)git commit --amend
Cofnąć commit, który jest już wypchniętygit revert HEAD

Przykład krok po kroku

Cofnij ostatni commit i zatwierdź go ponownie z lepszą wiadomością.

KrokPolecenieWynik
1git reset --soft HEAD~1Commit usunięty, zmiany zostają w poczekalni
2git commit -m "clearer message"Ponowny commit tych samych zmian

Najczęstsze pytania o cofanie ostatniego commita

Jak cofnąć ostatni commit, ale zachować zmiany?
Uruchom git reset --soft HEAD~1. To usuwa ostatni commit, ale zostawia jego zmiany w poczekalni, więc możesz od razu zatwierdzić je ponownie. Jeśli zmiany mają zostać poza poczekalnią, w katalogu roboczym, użyj git reset HEAD~1 (tryb domyślny).
Jak cofnąć ostatni commit i usunąć zmiany?
Uruchom git reset --hard HEAD~1. To usuwa commit i odrzuca jego zmiany z katalogu roboczego. To operacja destrukcyjna: jeśli praca może się jeszcze przydać, użyj --soft albo odzyskaj ją później przez git reflog.
Co jeśli trzeba poprawić tylko wiadomość commita?
Użyj git commit --amend. Otwiera ono ponownie ostatni commit, dzięki czemu możesz edytować jego wiadomość (i w razie potrzeby ponownie dodać pliki do poczekalni) bez tworzenia osobnego commita. Nie poprawiaj tak commita, który jest już wypchnięty, bo to przepisuje historię.
Jak cofnąć ostatni commit po jego wypchnięciu?
Użyj git revert HEAD. Revert tworzy nowy commit, który odwraca ostatni, i zostawia historię nietkniętą: to bezpieczny wybór na wspólnych gałęziach. Reset wypchniętego commita zmusza wszystkich innych do godzenia się z przepisaną gałęzią.
Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom te polecenia w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia cofanie zmian.
Ilustracja języków programowania w Coddy

Ucz się Gita z Coddy

ZACZNIJ