Przypadkowo wprowadziłem etapową zmianę w nowej gałęzi w programie Visual Studio 2017 do mojego lokalnego repozytorium. Nie został przesłany do zdalnego repozytorium. Chcę się go pozbyć, ale nie mogę znaleźć na to sposobu. Przeniosłem się z lokalnego oddziału głównego do nowego oddziału. Następnie usunąłem nowy oddział. Ale Wychodzące Commits nadal to pokazują. Jak go usunąć lub przywrócić?
git
visual-studio
visual-studio-2017
Tony_Henrich
źródło
źródło
Odpowiedzi:
Otwórz kartę historii w Team Explorer z kafelka Oddziały (kliknij prawym przyciskiem myszy swoją gałąź). Następnie w historii kliknij prawym przyciskiem myszy zatwierdzenie przed tym, którego nie chcesz wypychać, wybierz Resetuj. To przeniesie gałąź z powrotem do tego zatwierdzenia i powinno pozbyć się dodatkowego zatwierdzenia, które zrobiłeś. Aby zresetować się przed danym zatwierdzeniem, musisz więc wybrać jego rodzica.
W zależności od tego, co chcesz zrobić ze zmianami, wybierz trudne , co pozbyje się ich lokalnie. Lub wybierz Miękkie który będzie cofnąć popełnić ale pozostawi swój katalog roboczy ze zmianami w twojej wyrzuconych popełnić.
źródło
Nie mogłem znaleźć ani jednej dobrej odpowiedzi, która pomogłaby mi pozbyć się tego problemu.
Powiedzmy, że nazwa oddziału, w której przypadkowo wprowadziłeś zmiany, to
master
. Wykonanie czterech prostych kroków okazało się dla mnie światem:master
master
remotes/origin
źródło
revert
Zakładając, że przesłałeś najnowsze zmiany na serwer:
Po ponownym otwarciu projektu zarówno zatwierdzenia, jak i zmiany powinny wynosić zero.
źródło
TL; DR:
Użyj
git reset --soft HEAD~
w cmd z folderu .slnStałem przed tym dzisiaj i byłem przytłoczony, że
VSCode
sugeruje coś takiego, podczas gdy jego starszy bratVisual Studio
nie.Większość odpowiedzi była pomocna; Gdybym miał więcej zatwierdzeń, które zostały wykonane wcześniej, utrata ich wszystkich byłaby frustrująca. Co więcej, jeśli
VSCode
zrobi to w pół sekundy, nie powinno być skomplikowane.Jedynie odpowiedź jessehouwinga była najbliższa prostemu rozwiązaniu.
Zakładając, że niepożądane zmiany były ostatnimi, które miały miejsce, oto jak to rozwiązałem:
Idź do
Team Explorer
->Sync
. Tam zobaczysz wszystkie zatwierdzenia. NaciśnijActions
menu iOpen Command Prompt
Pojawi się okno cmd, napisz
git reset --soft HEAD~
. Jeśli istnieje wiele niepożądanych zatwierdzeń, dodaj kwotę po~
(tj.git reset --soft HEAD~5
)(Jeśli nie używasz
git
, sprawdź potoczne użycie).Mam nadzieję, że to pomoże i mam nadzieję, że w następnej wersji zespół VS doda to wbudowane
źródło
Przejdź do zakładki Team Explorer, a następnie kliknij Branches. W oddziałach wybierz swój oddział z pilotów / pochodzenia. Na przykład chcesz zresetować gałąź główną. Kliknij prawym przyciskiem myszy gałąź główną w pilotach / źródłach, a następnie wybierz Resetuj, a następnie kliknij Usuń zmiany. Spowoduje to zresetowanie lokalnego oddziału i usunięcie wszystkich lokalnie zatwierdzonych zmian.
źródło
Spróbuj ponownie oprzeć lokalną gałąź główną na zdalnej / źródłowej gałęzi głównej i rozwiąż wszelkie konflikty w procesie.
źródło
Masz tutaj 2 opcje, aby to zrobić: odrzucić wszystkie wychodzące zatwierdzenia LUB cofnąć określone zatwierdzenie.
1- Odrzuć wszystkie wychodzące commity:
Aby odrzucić wszystkie wychodzące zatwierdzenia Na przykład, jeśli masz lokalny oddział o nazwie master ze zdalnego oddziału, możesz:
1- Zmień nazwę lokalnego oddziału z głównego na dowolną, aby można było go usunąć. 2- Usuń gałąź o zmienionej nazwie. 3 - utwórz nową gałąź od mistrza
Więc teraz masz nową gałąź bez twoich zatwierdzeń ...
2- Cofnij określone zatwierdzenie: Aby cofnąć określone zatwierdzenie, musisz cofnąć niepotrzebne przez:
1- Kliknij dwukrotnie niepotrzebne zatwierdzenie. Kliknij dwukrotnie niepotrzebne zatwierdzenie. 2 - Kliknij przywróć. Kliknij przywróć
Ale FYI, przywrócone zatwierdzenie pojawi się w historii twoich zatwierdzeń wraz z przywróceniem zatwierdzenia.
źródło