Jak pokazano w Jak powstaje „nie coś, co możemy scalić”?, błąd ten może wynikać z literówki w nazwie oddziału, ponieważ próbujesz wyciągnąć gałąź, która nie istnieje.
Jeśli to nie jest problem (jak w moim przypadku), prawdopodobnie nie masz lokalnej kopii oddziału, którą chcesz scalić. Git wymaga lokalnej znajomości obu gałęzi, aby połączyć te gałęzie. Możesz rozwiązać ten problem, sprawdzając gałąź do scalenia, a następnie wracając do gałęzi, z którą chcesz się połączyć.
git checkout branch-name
git checkout master
git merge branch-name
To powinno działać, ale jeśli pojawi się komunikat o błędzie
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
musisz pobrać zdalny (prawdopodobnie, ale niekoniecznie „pochodzenie”) przed wypróbowaniem gałęzi:
git fetch remote-name
git fetch
pierwszy, zanim połączyłem zdalny oddział.Git requires local knowledge of both branches in order to merge those branches
To głupia sugestia, ale upewnij się, że w nazwie oddziału nie ma literówki!
źródło
Podczas wyciągania ze zdalnego w górę rzeki
git fetch --all
wykonałem dla mnie lewę:W innych przypadkach stwierdziłem, że błąd „Nie możemy scalić” wystąpi również, jeśli gałąź zdalna (pochodzenie, wysyłanie) nie istnieje. To może wydawać się oczywiste, ale możesz znaleźć się
git merge origin/develop
na repozytorium, które ma tylkomaster
.źródło
git remote add upstream
Było ważne, że brakowało mi rozwiązać to dla mnie. Myślę, że częstym błędem jest założenie, że widelec automatycznie wie, skąd został rozwidlony.Też miałem ten problem. Gałąź wyglądała jak „nazwa użytkownika / master”, co zdawało się mylić git, ponieważ wyglądało jak zdefiniowany przeze mnie adres zdalny. Dla mnie używam tego
działało idealnie dobrze.
źródło
origin/
przed nazwą odległej gałęzi./
.Poniższa metoda działa dla mnie za każdym razem.
źródło
Może się tak zdarzyć, ponieważ tej gałęzi nie ma w Twojej okolicy. przed połączeniem użyj
źródło
Ta odpowiedź nie jest związana z powyższym pytaniem, ale napotkałem podobny problem i być może będzie to przydatne dla kogoś. Próbuję scalić gałąź funkcji do opanowania, jak poniżej:
do tego dostał następujący komunikat o błędzie:
Patrzyłem przede wszystkim na rozwiązania, ale nie na żadne z nich.
Wreszcie zdałem sobie sprawę, że przyczyną problemu jest błąd ortograficzny w nazwie mojego oddziału (właściwie nazwa oddziału scalania to
fix-loads
).źródło
git merge origin/fix-loads
działało.Ten błąd występuje, ponieważ gałąź, którą chcesz scalić, nie istnieje w lokalnym repozytorium.
Najpierw sprawdź kasjer, który chcesz scalić z gałęzią master, wykonując następujące polecenie:
Następnie spróbuj połączyć go z gałęzią master za pomocą następującego polecenia:
źródło
checkout
Ten błąd sugeruje, że gałąź, z której chcesz scalić zmiany (tj. W twoim przypadku nazwa-gałęzi) nie jest obecna w twoim lokalnym, więc powinieneś sprawdzić gałąź i pobrać zmiany lokalne. Przejdź do głównej gałęzi i pobierz, a następnie wykonaj następujące czynności:
źródło
Wystąpił ten błąd, gdy zrobiłem
git merge BRANCH_NAME "some commit message"
- zapomniałem dodać flagi -m dla komunikatu zatwierdzenia, więc pomyślałem, że nazwa gałęzi zawiera komentarz.źródło
Moim zdaniem nie zdążyłem zmapować mojego lokalnego oddziału za pomocą zdalnego repo. Zrobiłem poniżej i działało dobrze.
źródło
Jeśli ciąg zawierający odwołanie jest generowany przez inne polecenie Git (lub inne polecenie powłoki w tym zakresie), upewnij się, że nie zawiera on znaku powrotu na końcu. Będziesz musiał go rozebrać przed przekazaniem łańcucha do „git merge”.
Zauważ, że jest to dość oczywiste, gdy tak się dzieje, ponieważ komunikat o błędzie w 2 wierszach:
źródło
Wystąpił ten błąd, ponieważ w nazwie oddziału mieliśmy przecinek (,). Usunęliśmy lokalny oddział, a następnie ponownie sprawdziliśmy go pod nową nazwą bez przecinka. Udało nam się to połączyć.
źródło
Dla potomnych: Jak powiedział AxeEffect ... jeśli nie masz literówek, sprawdź, czy masz śmieszne znaki w nazwie lokalnego oddziału, takie jak przecinki lub apostrofy. Właśnie to mi się właśnie przydarzyło.
źródło
Sugeruję sprawdzenie, czy możesz przejść do gałęzi, z którą próbujesz się połączyć.
Wystąpił ten błąd, mimo że gałąź, z którą chciałbym się połączyć, znajdowała się w lokalnym repozytorium i nie wystąpiły błędy w pisowni.
Zignorowałem moje lokalne zmiany, aby móc przejść do oddziału (można również preferować ukrywanie lub zatwierdzanie). Następnie wróciłem do początkowej gałęzi i scalanie zakończyło się powodzeniem.
źródło
Dla mnie problem wystąpił, gdy spróbowałem:
Więc właściwie powinienem był napisać
master
zamiastdevelop
, ponieważ master był nazwą gałęzi Subtree, a nie moją rzeczywistą gałęzią.źródło
Może to zabrzmieć dziwnie, ale pamiętaj, aby skonfigurować adres e-mail i nazwę git:
źródło
Dla mnie problemem były „podwójne znaki cudzysłowu” w łączącej się wiadomości. Więc kiedy usunąłem podwójny znak, wszystko działało magicznie. Mam nadzieję, że komuś pomogę. (Przepraszam za mój słaby angielski)
źródło
Miałem drzewo robocze z głównym i kolejną gałąź sprawdzoną w dwóch różnych folderach roboczych.
Jeśli potrzebujesz po prostu scalić najnowsze zatwierdzenie:
I jest taki sam jak zawsze:
źródło
Gałąź, którą próbujesz scalić, może nie zostać w tej chwili zidentyfikowana, więc wykonaj
git branch
i sprawdź, czy gałąź, którą chcesz scalić, nie istnieje, jeśli nie, to wykonaj,git pull
a teraz, jeśli to zrobiszgit branch
, gałąź będzie teraz widoczna, a teraz występujeszgit merge <BranchName>
źródło