Git: Jak cofnąć niewysłane zmiany?

Opublikowano: 14.09.2021 - tagi: Git

Załóżmy mamy taki scenariusz: Zrobiłeś commit swojego kodu, ale nie wysłałeś tych zmian do repozytorium. Chciałbyś cofnąć commita.

Co można zrobić? Po pierwsze wywołaj komendę:

git reflog

Pojawi się lista z commitami. Ostatni commit - ten nasz nie puszczony to HEAD@{0}. Zakładam, że będziemy chcieli się cofnąć do przedostatniego commita(ostatniego wysłanego na serwer).

Mamy dwa sposoby:

Przypadek 1: Wycofanie commita bez straty zmiany

Piszemy:

git reset --soft HEAD@{1}

Ta komenda cofnie commita do stanu sprzed zatwierdzenia zmian. Czyli nie utracimy naszych zmian i będą oznaczone jako niezatwierdzone.

Przypadek 2: Wycofanie commita z usunięciem zmian

git reset --hard HEAD@{1}

Tutaj commit także zostanie confięty, ale stracimy dodatkowo nasze zmiany.