Przypadkowo uruchomiłem polecenie przeciwko niewłaściwemu oddziałowi w moim repozytorium - czy istnieje sposób na cofnięcie tej zmiany?Czy istnieje sposób na cofnięcie efektów "git revert head"?
Odpowiedz
git revert
tylko tworzy nowy popełnić - można „usunąć” ją git reset --hard HEAD^
Uważaj z 'git reset --hard HEAD ^', ponieważ usunie wszelkie niezamówione zmiany. – Jeremen
Jeśli zrobisz 'git stash' przed' git reset --hard HEAD^'możesz" zapisać "twoje niezamówione zmiany. Po 'git reset --hard HEAD ^' wykonaj 'git stash pop', aby ponownie wczytać niezamówione zmiany do bieżącej gałęzi. – kukko
Komenda git revert
właśnie tworzy popełnić że cofa inny (bardziej uważać z nim, choć!). Powinieneś móc ponownie uruchomić git revert HEAD
, a to cofnie twoje poprzednie cofnięcie i doda do tego inne zatwierdzenie. Lub możesz zrobić git reset --hard HEAD~
. Ale uważaj na to ostatnie, ponieważ usuwa dane.
HEAD~
oznacza popełnić przed obecnym HEAD
Nie, nie kasuje danych. Po prostu przesuwa wskaźnik gałęzi. Poprzednie zatwierdzenie nadal istnieje i możesz zobaczyć jego ID, patrząc na 'git reflog' (f.ex.). Zostanie zebrany w ciągu dwóch miesięcy (domyślna konfiguracja), ale możesz wyłączyć automatyczne usuwanie śmieci, a następnie * każdy pojedynczy commit * ty * kiedykolwiek * będzie istnieć na zawsze w tym repozytorium. Nie można do nich dotrzeć za pośrednictwem oddziałów. Ale zawsze można je znaleźć za pomocą 'git fsck', a ja napisałem przepis na przeglądanie wszystkich zatwierdzeń, które używają tego. –
jak o powracanie Przywróć?
dziennika Zobacz git i uzyskać tag hash złej revert:
git log -5
następnie wykonaj odwrócić Cofnij się do:
git revert
-1 spowoduje to utworzenie kolejnego zatwierdzenia, które tak naprawdę nie jest tutaj potrzebne – CharlesB
Po zapoznaniu się z dokumentacją resecie oparte na rada poniżej, reset git - hard head ~ 1 rozwiązał to dla mnie. – blueberryfields