Como mostrado em Como "não podemos fundir algo", surge? , esse erro pode ocorrer devido a um erro de digitação no nome da ramificação, porque você está tentando extrair uma ramificação que não existe.
Se esse não for o problema (como no meu caso), é provável que você não tenha uma cópia local da ramificação que deseja mesclar. O Git requer conhecimento local de ambos os ramos para mesclar esses ramos. Você pode resolver isso verificando a ramificação para mesclar e, em seguida, voltando para a ramificação na qual deseja mesclar.
git checkout branch-name
git checkout master
git merge branch-name
Isso deve funcionar, mas se você receber um erro dizendo
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
você precisa buscar o controle remoto (provavelmente, mas não necessariamente, "origem") antes de verificar a ramificação:
git fetch remote-name
git fetch
primeiro antes de se fundir o ramo remoto.Git requires local knowledge of both branches in order to merge those branches
É uma sugestão boba, mas verifique se não há erro de digitação no nome da filial!
fonte
Ao puxar de um remoto rio acima,
git fetch --all
fiz o truque para mim:Em outros casos, encontrei o erro "Não é possível mesclar" também ocorrerá se o ramo remoto (origem, montante) não existir. Isso pode parecer óbvio, mas você pode se encontrar fazendo
git merge origin/develop
em um repositório que apenas o possuimaster
.fonte
git remote add upstream
era a coisa importante que eu estava faltando que resolveu isso por mim. Eu acho que um erro comum é assumir que um garfo sabe automaticamente de onde foi bifurcado.Eu tive esse problema também. O ramo parecia 'nome de usuário / mestre', que parecia confundir o git, pois parecia um endereço remoto que eu defini. Para mim, usando isso
funcionou perfeitamente bem.
fonte
origin/
antes do nome do ramo remoto também./
.O método abaixo funciona para mim o tempo todo.
fonte
Isso pode acontecer porque esse ramo não está no seu local. antes de mesclar o uso
fonte
Você está recebendo este erro porque o ramo que você deseja mesclar não existe no seu repositório local.
Portanto, primeiro faça o checkout do brach que você deseja mesclar na ramificação principal pelo seguinte comando:
Depois disso, tente mesclá-lo com a ramificação mestre pelo seguinte comando:
fonte
checkout
o ramoEste erro sugere que o ramo de onde você deseja mesclar as alterações (por exemplo, no caso, nome-do-ramo) não está presente no seu local, portanto, você deve fazer check-out do ramo e buscar as alterações locais. Faça o checkout no seu ramo principal e busque e siga as etapas abaixo:
fonte
Esta resposta não está relacionada à pergunta acima, mas enfrentei um problema semelhante, e talvez isso seja útil para alguém. Mesclei meu ramo de recursos para dominar como abaixo:
Recebi a seguinte mensagem de erro:
Eu olhei acima de todas as soluções, mas nenhuma delas funcionou.
Achei que o problema era um erro de ortografia no nome da minha filial (na verdade, o nome da ramificação de mesclagem é
fix-loads
).fonte
git merge origin/fix-loads
funcionou.Eu recebi esse erro quando fiz um
git merge BRANCH_NAME "some commit message"
- eu tinha esquecido de adicionar o sinalizador -m para a mensagem de confirmação, por isso achava que o nome do ramo incluía o comentário.fonte
Na minha opinião, eu tinha perdido o mapa da minha filial local com repo remoto. eu fiz abaixo e funcionou bem.
fonte
Se a sequência que contém a referência é produzida por outro comando Git (ou qualquer outro comando shell), verifique se ela não contém um carro de retorno no final. Você precisará removê-lo antes de passar a string para "git merge".
Observe que é bastante óbvio quando isso acontece, porque a mensagem de erro aparece em duas linhas:
fonte
Obtivemos esse erro porque tínhamos uma vírgula (,) no nome do ramo. Excluímos a ramificação local e a verificamos novamente com um novo nome sem a vírgula. Conseguimos mesclá-lo com sucesso.
fonte
Para a posteridade: Como o AxeEffect disse ... se você não tiver erros de digitação, verifique se há caracteres ridículos no nome de sua filial local, como vírgulas ou apóstrofes. Exatamente isso aconteceu comigo agora.
fonte
Eu sugiro verificar se você é capaz de mudar para o ramo que você está tentando mesclar.
Eu recebi esse erro mesmo que o ramo com o qual eu queria mesclar estivesse no repositório local e não houvesse erros de ortografia.
Eu ignorei minhas alterações locais para poder mudar para a ramificação (Stash ou commit também pode ser preferido). Depois disso, voltei ao ramo inicial e a fusão foi bem-sucedida.
fonte
Para mim, o problema ocorreu quando tentei isso:
Então, na verdade, eu deveria ter escrito em
master
vez dedevelop
, porque master era o nome do ramo da subárvore, não o meu ramo real.fonte
Isso pode parecer estranho, mas lembre-se de configurar seu e-mail e nome do git:
fonte
Para mim, o problema eram as 'aspas duplas' na mensagem de mesclagem. Então, quando eu removi a marca dupla, tudo funcionou magicamente. Espero ajudar alguém. (Desculpe pelo meu inglês ruim)
fonte
Eu tinha uma árvore de trabalho com master e uma outra ramificação em duas pastas de trabalho diferentes.
Se você precisar mesclar apenas a confirmação mais recente:
E é o mesmo que sempre fiz:
fonte
O ramo que você está tentando mesclar pode não ser identificado por você no momento, então execute
git branch
e veja se o ramo que você deseja mesclar existe, se não o for, se não o executargit pull
e agora, se o fizergit branch
, o ramo estará visível agora, e agora você executagit merge <BranchName>
fonte