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ć?
Odpowiedzi:
git merge --abort
może być tym, czego szukasz.źródło
git status
aby potwierdzić.Nowoczesny Git:
Starsze:
Stara szkoła (ostrzeżenie: odrzuci wszystkie lokalne zmiany):
Ale w rzeczywistości warto zauważyć, że
git merge --abort
jest to równoważne tylko temu,git reset --merge
żeMERGE_HEAD
jest obecny. Można to przeczytać w pomocy git dla polecenia merge.Po nieudanym scalaniu, jeśli nie ma
MERGE_HEAD
, nieudane scalanie można cofnąć za pomocą,git reset --merge
ale niekoniecznie za pomocągit merge --abort
, więc nie są to tylko stara i nowa składnia tego samego . Osobiściegit reset --merge
znacznie bardziej przydaje mi się w codziennej pracy.źródło
Z Git 2.10 (Q3 2016) będziesz wiedział co robić, bo
git status
zaproponujemy takągit merge --abort
opcję.Zobacz commit b0a61ab (21 lipca 2016) autorstwa Matthieu Moy (
moy
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 5a2f4d3 , 03 sierpnia 2016)źródło