nie, nie o to prosi OP - jasne jest, że chce cofnąć się do ostatniego zatwierdzenia, a nie cofnąć ostatniego zatwierdzenia. nie powiedział, że dodał kilka plików, a następnie je zatwierdził. więc najwyraźniej chce ostatniego zatwierdzenia.
Paul
1
Trudno jest znaleźć odpowiedź na to bardzo częste pytanie
Sam
Odpowiedzi:
211
Caveat Emptor - Niszczycielskie rozkazy przed nami.
Łagodzenie - git reflogmoże cię uratować, jeśli tego potrzebujesz.
1) COFNIJ zmiany lokalnego pliku i ZACHOWAJ ostatnie zatwierdzenie
git reset --hard
2) COFNIJ zmiany lokalnego pliku i USUŃ ostatnie zatwierdzenie
git reset --hard HEAD^
3) ZACHOWAJ zmiany w lokalnych plikach i USUŃ ostatnie zatwierdzenie
To polecenie usunie poprzednie zatwierdzenie, więc używaj go ostrożnie! reset git
hard
9
WTF robi to jako poprawna odpowiedź z 36 głosami pozytywnymi. Właśnie straciłem dni pracy na to ... ponieważ czytam odpowiedź, a nie komentarz. To nie jest prawidłowa odpowiedź na pytanie!
Chris Nevill
1
OK, nie wszystko stracone! Możesz zrobić git reflog, co pozwoli ci zobaczyć zatwierdzenia wykonane przed resetem. Następnie możesz sprawdzić te zobowiązania
Chris Nevill
3
Co jest warte, zinterpretowałem pytanie OP jako „jak cofnąć zatwierdzenie i usunąć bieżące pliki”, ale było i pozostaje niejednoznaczne. Zrozumiałbym inaczej, gdyby OP po prostu powiedział „jak usunąć bieżące pliki, które nie zostały dodane lub
zatwierdzone
2
Git jest przeciwieństwem stwierdzenia Alana Kaysa. Proste rzeczy powinny być proste, a złożone powinny być możliwe. ... zwłaszcza jego pierwszej części. Mimo to dziękuję za odpowiedź. pomogło.
0xC0000022L
46
Jeśli chcesz usunąć nowo dodane treści i pliki, które są już w fazie przejściowej (czyli dodane do indeksu), użyj:
git reset --hard
Jeśli chcesz usunąć także swoje ostatnie zatwierdzenie (to z komunikatem „bla”), lepiej użyj:
git reset --hard HEAD^
Aby usunąć nieśledzone pliki (czyli nowe pliki, które nie zostały jeszcze dodane do indeksu) i foldery, użyj:
zrobił to, ale pliki nadal tam są. (niezatwierdzone pliki nadal tam są)
Blankman,
w tym przypadku możesz zrobić „git stash”
jacktrade
3
głosowano za, ponieważ jest to jedyna jasna i jednoznaczna odpowiedź na jasne i jednoznaczne pytanie PO.
Paul
4
Możesz cofnąć zatwierdzenie, używając git revert HEAD^do powrotu do przedostatniego zatwierdzenia. Możesz także określić zatwierdzenie do cofnięcia za pomocą id zamiast HEAD ^
Odpowiedzi:
Caveat Emptor - Niszczycielskie rozkazy przed nami.
Łagodzenie -
git reflog
może cię uratować, jeśli tego potrzebujesz.1) COFNIJ zmiany lokalnego pliku i ZACHOWAJ ostatnie zatwierdzenie
2) COFNIJ zmiany lokalnego pliku i USUŃ ostatnie zatwierdzenie
3) ZACHOWAJ zmiany w lokalnych plikach i USUŃ ostatnie zatwierdzenie
źródło
Jeśli chcesz usunąć nowo dodane treści i pliki, które są już w fazie przejściowej (czyli dodane do indeksu), użyj:
Jeśli chcesz usunąć także swoje ostatnie zatwierdzenie (to z komunikatem „bla”), lepiej użyj:
Aby usunąć nieśledzone pliki (czyli nowe pliki, które nie zostały jeszcze dodane do indeksu) i foldery, użyj:
źródło
git reset --hard
wymusi powrót katalogu roboczego do ostatniego zatwierdzenia i usunie nowe / zmienione pliki.źródło
Możesz cofnąć zatwierdzenie, używając
git revert HEAD^
do powrotu do przedostatniego zatwierdzenia. Możesz także określić zatwierdzenie do cofnięcia za pomocą id zamiast HEAD ^źródło
Jeśli chcesz po prostu cofnąć zatwierdzenie ostatniego zatwierdzenia, użyj tego:
działają dla mnie jak urok.
źródło
Łatwym i niezawodnym sposobem cofania zmian w pliku lokalnym od ostatniego zatwierdzenia jest umieszczenie ich w nowej gałęzi:
Pozostawia to zmiany w nowej branży. Wróć do oryginalnej gałęzi, aby znaleźć ją z powrotem do ostatniego zatwierdzenia:
Nowa gałąź jest dobrym miejscem do ćwiczenia różnych sposobów cofania zmian bez ryzyka zepsucia oryginalnej gałęzi.
źródło