Jestem na gałęzi mybranch1
. mybranch2
jest rozwidlony mybranch1
i dokonano zmian w mybranch2
.
Potem mybranch1
zrobiłem git merge --no-commit mybranch2
To pokazuje, że podczas łączenia występowały konflikty.
Teraz chcę odrzucić wszystko ( merge
polecenie), aby mybranch1
powróciło do poprzedniego stanu. Nie mam pojęcia, jak sobie z tym poradzić.
git
git-merge
git-merge-conflict
Anszul
źródło
źródło
Odpowiedzi:
Najnowsze Git:
Próba zresetowania kopii roboczej do stanu, w jakim znajdowała się przed scaleniem. Oznacza to, że powinien przywrócić wszelkie niezaangażowane zmiany sprzed scalenia, chociaż nie zawsze może to zrobić niezawodnie. Ogólnie i tak nie powinieneś łączyć się z niezatwierdzonymi zmianami.
Przed wersją 1.7.4:
Jest to starsza składnia, ale działa tak samo jak powyżej.
Przed wersją 1.6.2:
który usuwa wszystkie niezatwierdzone zmiany, w tym niezatwierdzone scalenie. Czasami takie zachowanie jest przydatne nawet w nowszych wersjach Gita, które obsługują powyższe polecenia.
źródło
git reset --merge
nawet w nowszych wersjach. Wystąpiłgit merge --abort
błąd (nie wprowadzając żadnych zmian) w przypadkugit reset --merge
powodzenia (i właściwego działania) w git 2.2.1.git merge --abort
,git reset --merge
gdy pojawia się konflikt automerge z powodu wyskakiwania mojej skrytki.git merge --abort
działa dla mnie, ale znalazłem się w sytuacji, w której wyewidencjonowałem się w stanie odłączonym HEAD, a jeden z moich plików miał stan „oba zmodyfikowane”. Chciałem porzucić wszystko i wrócić do oddziału, musiałemgit reset --hard
,git merge --abort
powiedział mi, że nie ma żadnego scalenia do przerwania (brak MERGE_HEAD).git merge --abort
nie jest w stanie przywrócić ci poprzedniego stanu, w takim przypadku „starsza składnia” załatwia sprawęgit reset --hard
.W rzeczywistości warto zauważyć, że
git merge --abort
jest to odpowiednik tylkogit reset --merge
biorąc pod uwagę, żeMERGE_HEAD
jest obecny. Można to odczytać w pomocy git dla polecenia scalania.Po nieudanym scaleniu, gdy nie ma
MERGE_HEAD
, nieudanego scalenia można cofnąć,git reset --merge
ale niekoniecznie za pomocągit merge --abort
, więc są one nie tylko starą i nową składnią tego samego .Osobiście uważam, że jest
git reset --merge
dużo bardziej przydatny w codziennej pracy.źródło
git stash apply
od niewłaściwej gałęzi, igit merge --abort
nie zrobiłem nic (nieMERGE_HEAD
), podczas gdygit reset --merge
zrobiłem lewę.git merge --abort
to nowe polecenie,git reset --merge
i natknąłem się na ten sam problem, co @geomaster, to było bardzo pomocne dzięki!Zakładając, że używasz najnowszego gita,
źródło
Są dwie rzeczy, które możesz zrobić najpierw cofnąć scalenie poleceniem
lub
możesz tymczasowo przejść do poprzedniego stanu zatwierdzenia przez polecenie
źródło
Sourcetree
Jeśli nie zatwierdzisz scalenia, po prostu kliknij dwukrotnie inną gałąź (= kasa), a gdy sourcetree zapyta Cię o odrzucenie wszystkich zmian, wówczas zgódź się
źródło