2015-02-24 21 views
6

Mam wyciągnął z inny oddział od pilota. Te dwie gałęzie są różne, ale scalenie odbyło się w ciszy na mojej obecnej gałęzi. Obecnie pracuję w lokalnej gałęzi "master" i zaktualizowano ją o zmiany w zdalnym oddziale - "FE_Changes".cofnij git pull z niewłaściwej gałęzi na master

Jak usunąć efekty gałęzi "FE_Changes" z mojego głównego oddziału?

+0

Czy używasz git w środku i IDE? Terminal? czy coś takiego? – acostela

+0

Tak, faktycznie używam rozszerzeń Git. Stało się tak, gdy wyciągnąłem gałąź "FE_Changes" będąc w gałęzi "master". Powinienem zamiast tego użyć okna do kas. – OverTheEdge

+0

Czy możesz pokazać wynik (tyle, ile jest to istotne) następującego polecenia: dziennik git --all - graph --oneline --decorate zakładając, że nie ma żadnych poufnych informacji w dziennikach zatwierdzeń, oczywiście ... powinno pomóc wyjaśnić dokładnie, co się stało. – mephisto

Odpowiedz

7

git reset --hard HEAD~1

Będzie nuke najnowsza popełnić w lokalnym oddziale. Zakładając, że twoja strategia przyciągania jest scalana, powinno być tylko jedno nieuczciwe zatwierdzenie w lokalnym oddziale głównym. Wspomniałeś, że "scalenie stało się po cichu", więc powinno to zadziałać w twoim przypadku. Po naprawieniu głównej gałęzi możesz ponownie pociągnąć, tym razem upewniając się, że wyciągasz z właściwej odległej gałęzi.

+0

wow to zrobiłem to. Muszę powiedzieć, że zrobiłem kilka szalonych rzeczy na GUI Git Extensions jak sprawdzanie z origin/master, git res et (do HEAD not HEAD ~ 1), ale wciąż to nadpisało i przyniosło zmiany. Co więcej, mogę teraz pobrać i pobrać najnowsze aktualizacje "master" ponownie z pilota. Żadna ze zmian dokonanych w gałęzi "FE_Changes" nie jest widoczna teraz w mojej lokalnej gałęzi "master". Wielkie dzięki Tim. – OverTheEdge

4

Oprócz Tima odpowiedź: Jeśli chcesz być przywrócone do konkretnego popełnić:

git reflog 

pokaże identyfikatory wszystkich ostatnich zatwierdzeń

Następnie można wykonać:

git reset --hard <specific id> 

w celu zresetowania do określonego zatwierdzenia.

+0

dzięki w przyszłości zapamiętają "git reflog". – OverTheEdge