Ponieważ już przekazałeś zatwierdzenia do zdalnego repozytorium, najlepszym sposobem jest prawdopodobnie przywrócenie tych dwóch zatwierdzeń, aby nie stwarzać problemów dla każdego, kto już wyjął ze zdalnego repozytorium.
Przykłady wykorzystywać historię Poniżej popełnienie:
e512d38 Adding taunts to management.
bd89039 Adding kill switch in case I'm fired.
da8af4d Adding performance optimizations to master loop.
db0c012 Fixing bug in the doohickey
Jeśli chcesz po prostu cofnąć zobowiązuje bez modyfikowania historię, można wykonać następujące czynności:
git revert e512d38
git revert bd89039
Ewentualnie, jeśli don” Jeśli chcesz, aby inni zobaczyli, że dodano przełącznik zabijania, a następnie go usunęli, możesz przywrócić repozytorium za pomocą następujących elementów (jednak spowoduje to problemy dla innych, którzy już wyciągnęli twoje zmiany z pilota):
git reset --hard da8af4d
git push origin -f localBranch:remoteBranch
gdzie localBranch
to nazwa lokalnego oddziału, a remoteBranch
to nazwa zdalnego oddziału.
Możesz * to zrobić, ale jest to niewskazane, ponieważ ktoś, kto w międzyczasie złapał zatwierdzenie, będzie ... cóż, aby uniknąć złych słów, powiedzmy: "będą musieli ciężko pracować, aby wyleczyć się z twoich działań . " :-) Lepiej użyć "git revert", aby dodać nowy commit, który cofa poprzednie zatwierdzenie. (Pomyśl o "przywróceniu" jako "dodaj zatwierdzenie, którego łatka jest akcją polegającą na dokładnym cofnięciu poprzedniego zatwierdzenia", ponieważ tak właśnie jest.) – torek
@torek Myślę o tym na początku, ale myślę, że shadowfax może mieć inne celów, takich jak utrzymanie każdego zdalnego zatwierdzania zdolnego do poprawnego działania, w przeciwnym razie pomyślałby o "przywróceniu i popchnięciu". – peter
Myślę, że możesz być zaskoczony, jak wiele osób nie rozumie "git revert".Z drugiej strony może istnieć zupełnie inny motyw (jak w odpowiedzi Davida M. Syzdka). W niektórych przypadkach nie ma dobrych rozwiązań, tylko najgorszy (który różni się w zależności od sytuacji). – torek