Git: jak cofnąć zmiany wprowadzone przez commit –amend
Wyobraź sobie sytuację, że dodałeś coś do istniejącego commita poleceniem git comit amend, ale jednak chciałbyś tę zmianę cofnąć. I co teraz?
Z pomocą przychodzi git reflog
. Polecenie to pokazuje Nam historię tego co robiliśmy w repozytorium: commity, zmiany branchy, informacje o zrobionych mergach oraz inne przydatne informacje. Więcej informacji można znaleźć w dokumentacji: git reflog
W momencie jak chcemy cofnąć zmiany wprowadzone przez git commit --amend
wykonujemy polecenie:
git reflog -15
To nam pokażę historię ostatnich 15 zmian.
Widać, że ostatnia zmiana HEAD@{0}
to nasze dodanie zmian do poprzedniego commita. Czyli, aby cofnąć te zmiany musimy być w miejscu HEAD@{1}
.
Do tego celu wystarczy użyć polecenia: git reset
. Pozostaje tylko pytanie czy chcemy te zmiany (które wprowadzliśmy przez git commit --amend
) zachować czy może je usunąć.
Jeśli chcemy je zachować wykonujemy polecenie:
git reset --soft HEAD@{1}
Jeśli na tych zmianach Nam nie zależy wykonujemy:
git reset --hard HEAD@{1}
Przełącznik --soft
wrzuci Nam te zmiany do stage’a, a --hard
usunie.
Soft:
Hard:
Fajne graficznie porównanie między tymi opcjami znalazłem na StackOverflow:
I to tyle 🙂 Przy odrobinie większej znajomości gita nie trzeba się obawiać żadnych wprowadzonych niepotrzebnie zmian. Dużo rzeczy można cofnąć lub zmienić.
2 Komentarze
Wello · 5 stycznia 2019 o 3 h 03 min
Przeczytane, dzięki
dotnetomaniak.pl · 12 grudnia 2018 o 5 h 04 min
Git: jak cofnąć zmiany wprowadzone przez commit -amend – Tomasz Prasołek
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl