Próba scalenia Git cofnąć

90

Mam katalog roboczy (nr 1) zawierający katalog dostawcy (nr 2). Jest jedna zależność, którą chciałem ściągnąć ręcznie bez kompozytora (wersja php npm / gem). Pracowałem w # 1, nie zapisałem / nie zatwierdziłem zmian, kiedy zdecydowałem, że chcę zaktualizować bibliotekę w # 2. Przeszedłem do dostawcy / moje imię i zrobiłem repozytorium git pull.

Niestety zaczął się ściągać i łączyć z numerem 1, zamiast tworzyć nowy katalog w folderze dostawcy.

Teraz mam:

  • Folder nr 1 z moimi zmianami
  • Folder nr 1 z plikami, których nie chcę z niewłaściwego repozytorium
  • # 1 konflikty scalania, takie jak composer.json, Readme.md ... (pliki ogólne)

Chcę „cofnąć” to ostatnie ściągnięcie git bez utraty jakichkolwiek zmian, które wprowadziłem w folderze # 1. Jak mogę to zrobić?

ewooycom
źródło
Git zapobiega ściąganiu lub scalaniu, jeśli są niezatwierdzone zmiany, czy na pewno tak się stało?
CharlesB
1
@CharlesB Scalanie zostało przerwane, projekty nie są łączone strumieniowo. Nie wiem nic o zapobieganiu
gitowi

Odpowiedzi:

170

git merge --abort może być tym, czego szukasz.

aragaer
źródło
6
W starszych wersjach git: git reset --merge
razz0
Działa, ale nic ci nie mówi. Zrób a, git statusaby potwierdzić.
aliteralmind
17

Nowoczesny Git:

git merge --abort

Starsze:

git reset --merge

Stara szkoła (ostrzeżenie: odrzuci wszystkie lokalne zmiany):

git reset --hard

Ale w rzeczywistości warto zauważyć, że git merge --abortjest to równoważne tylko temu, git reset --mergeże MERGE_HEADjest obecny. Można to przeczytać w pomocy git dla polecenia merge.

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

Po nieudanym scalaniu, jeśli nie ma MERGE_HEAD, nieudane scalanie można cofnąć za pomocą, git reset --mergeale niekoniecznie za pomocą git merge --abort, więc nie są to tylko stara i nowa składnia tego samego . Osobiście git reset --mergeznacznie bardziej przydaje mi się w codziennej pracy.

Martin G.
źródło
2

Z Git 2.10 (Q3 2016) będziesz wiedział co robić, bo git statuszaproponujemy taką git merge --abortopcję.

Zobacz commit b0a61ab (21 lipca 2016) autorstwa Matthieu Moy ( moy) .
(Scalone przez Junio ​​C Hamano - gitster- w zatwierdzeniu 5a2f4d3 , 03 sierpnia 2016)

status: sugeruj ' git merge --abort', gdy jest to stosowne

Już sugerujemy „ git rebase --abort” podczas konfliktu rebase.
Podobnie sugeruj „ git merge --abortpodczas rozwiązywania konfliktów w dniu git merge”.

VonC
źródło