• Czas czytania ~2 min
  • 04.03.2024
Git Revert Commit – How to Undo the Last Commit

Załóżmy, że pracujesz nad kodem w usłudze Git i coś poszło nie tak, jak zaplanowano. Więc teraz musisz cofnąć swój ostatni commit. Jak to zrobić? Dowiedzmy Się!

Istnieją dwa możliwe sposoby cofnięcia ostatniego zatwierdzenia. Przyjrzymy się im obu w tym artykule.

Polecenie revert

Polecenie revert will create a commit that reverts the changes of the commit being targeted. You can use it to revert the last commit like this:

git revert <commit to revert>

Możesz znaleźć nazwę zatwierdzenia, które chcesz przywrócić, używając git log. Pierwszy opisany tam commit jest ostatnim utworzonym commitem. Następnie możesz skopiować stamtąd nazwę alfanumeryczną i użyć jej w revert poleceniu.

A diagram showing that the git revert command creates a new commit to revert previous changes.
In this image, each circe represents a commit.

Polecenie reset

Możesz również użyć polecenia, reset aby cofnąć ostatnie zatwierdzenie. Ale bądź ostrożny – zmieni to historię commitów, więc powinieneś używać go rzadko. Przeniesie HEAD, gałąź roboczą, do wskazanego commita i odrzuci wszystko, co po:

git reset --soft HEAD~1

Opcja --soft oznacza, że nie utracisz niezatwierdzonych zmian, które możesz mieć.

A diagram showing that git reset --soft will change your commit history, but will keep any unstaged changes you have.
In this image, each circle represents a commit.

Jeśli chcesz zresetować do ostatniego zatwierdzenia, a także usunąć wszystkie nieprzygotowane zmiany, możesz użyć --hard opcji:

git reset --hard HEAD~1

Spowoduje to cofnięcie ostatniego zatwierdzenia, ale także wszelkich niezatwierdzonych zmian.

A diagram showing that git reset --hard will change your commit history, but will also remove any unstaged changes you have.
In this image, each circle represents a commit.

Czy powinieneś używać reset czy revert w Git?

Tak naprawdę powinieneś używać reset tylko wtedy, gdy resetowany commit istnieje tylko lokalnie. To polecenie zmienia historię zatwierdzeń i może zastąpić historię, od której zależy zdalny członek zespołu.

revert instead creates a new commit that undoes the changes, so if the commit to revert has already been pushed to a shared repository, it is best to use revert as it doesn't overwrite commit history.

Wniosek

: Nauczyłeś się dwóch sposobów cofania ostatniego commita, a także tego, kiedy najlepiej jest użyć jednego z nich.

Teraz, jeśli zauważysz, że Twój ostatni commit wprowadza błąd lub nie powinien zostać zatwierdzony, wiesz, jak to naprawić!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297