Zasadniczo są dwie opcje, aby cofnąć zmiany:
- utworzyć nowy popełnić których stosuje się odwrotne zmian. Jest to preferowana opcja, ponieważ nie zmienia historii w publicznym repozytorium.
- Usuń zatwierdzenia i wymuś je.
Pierwsza opcja może zostać osiągnięty za pomocą git revert
git-Przywróć - Przywróć niektóre istniejące zobowiązuje
dla jednej lub więcej istniejących zobowiązuje, cofnąć zmiany, które powiązane łaty przedstawić i nagrać kilka nowych zatwierdzeń, które je nagrywają.
Przykładem może być git revert -n HEAD~5..HEAD
. To polecenie tworzy 5 nowych zatwierdzeń, z których każdy cofa jedno z ostatnich 5 zatwierdzeń aktualnie wyrejestrowanego oddziału.
Drugą opcją byłoby faktycznie usunięcie zatwierdzeń. Zauważ, że zmienia to historię w repozytorium. Tak więc każdy, kto już wprowadził zmiany, prawdopodobnie będzie raczej zaskoczony, a rzeczy mogą się szybko upaść.Powiedział, że możesz zrobić
git reset --hard HEAD~5
git push --force
Pierwsze polecenie wyczyści wszelkie niezatwierdzone zmiany w bieżącej kopii roboczej. i zresetuj lokalne repozytorium do stanu bieżących ostrzeżeń HEAD - 5. Drugie polecenie wymusi wypchnięcie do domyślnego pilota (tj. GitHub). Tam wszelkie zmiany odbiegające od bieżącego lokalnego repozytorium zostaną nadpisane.
Notatka z ostrzeżeniem: jeśli nie wiesz, co robisz, nie korzystaj z tej opcji, ponieważ może to prowadzić do utraty danych przez Ciebie lub innych, jeśli nie zostanie wykonana prawidłowo. Zamiast tego użyj pierwszej opcji, ponieważ spowoduje to usunięcie zmian w przejrzysty sposób, ale bez nieprzyjemnych skutków ubocznych przepisywania historii.
Czy to wymaga tagu github? Wygląda na to, że nie jest specyficzny dla github. – Nick