git pull do controle remoto, mas nenhuma referência foi buscada?

69

Eu tenho um espelho git no meu disco e quando eu quero atualizar meu repositório com git pull, isso me dá uma mensagem de erro:

 Your configuration specifies to merge with the ref '3.5/master' from the remote, but no such ref was fetched.

Também me dá:

  1ce6dac..a5ab7de  3.4/bfq    -> origin/3.4/bfq
  fa52ab1..f5d387e  3.4/master -> origin/3.4/master
  398cc33..1c3000a  3.4/upstream-updates -> origin/3.4/upstream-updates
  d01630e..6b612f7  3.7/master -> origin/3.7/master
  491e78a..f49f47f  3.7/misc   -> origin/3.7/misc
  5b7be63..356d8c6  3.7/upstream-updates -> origin/3.7/upstream-updates
  636753a..027c1f3  3.8/master -> origin/3.8/master
  b8e524c..cfcf7b5  3.8/misc   -> origin/3.8/misc
  * [neuer Zweig]     3.8/upstream-updates -> origin/3.8/upstream-updates

Quando executo make menuconfig, ele me fornece a versão 3.5.7 do Linux? O que isto significa? Como posso atualizar meu repo?

Gigamegs
fonte

Respostas:

58

Verifique a ramificação em que você está ( git branch), verifique a configuração para essa ramificação (in .../.git/config), você provavelmente está na ramificação errada ou sua configuração indica para mesclar com uma ramificação remota (agora?) Inexistente.

vonbrand
fonte
22
Para remover referências de ramificação remotas inexistentes no seu repositório local, use git remote prune origin.
Jevon
7
Outra maneira de "verificar a configuração" para um ramo é: git branch -vv. Isso exibe o "remoto" associado à ramificação.
offby1
28

No meu caso, minha filial local não foi configurada para rastrear a filial remota. Eu tive que executar manualmente:

git pull origin remotebranch

Da próxima vez que você pressionar, faça "git push -u" para configurar o rastreamento correto.

Mauvis Ledford
fonte
O mesmo vale para quando você git init --bare
clona
10

No meu caso, minha filial local e filial remota tinham letras maiúsculas diferentes.

Para resolver isso, excluí minha ramificação local $ git branch -d branch-namee depois verifiquei novamente a ramificação remota usando $ git fetche $ git checkout Branch-name.

Feckmore
fonte
É limpo, simples e funcionando bem. Obrigado.
precisa
Eu recebi esse erro na linha de cmd. Tentei o SmartGit com uma rebase e superei.
usar o seguinte
Faça isso uma vez, em vez de apagar ramo e re-checkout ramo cada vez: capitalização correta em sua /.git/config
wz366
2

É possível que outra pessoa da sua equipe simplesmente mesclou sua ramificação e a exclua (geralmente feita após a mesclagem). Você pode fazer a ramificação no repositório e tentar novamente. Isso acontece comigo na minha empresa de vez em quando (o padrão de bitbucket é mesclar e excluir).

Scott Biggs
fonte
1

No meu caso (a advertência usual), eu já tinha uma ramificação com o nome apropriado, então só precisei adicionar remote = originao meu .git / config:

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added
ericP
fonte
1

Eu tive o mesmo erro ao ficar sem espaço em disco. Depois de redimensionar o volume, o erro desapareceu.

Daniel Alder
fonte
0

Eu peguei esse problema devido a um problema de revestimento que se manifesta no Windows.

Minha configuração do Git se parecia com:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/Bug/some_branch

No servidor, "Bug" e "bug" existiam como parte de várias ramificações. O Windows pode conter apenas um deles por vez, devido ao mapeamento do sistema de arquivos. Portanto, atualizei manualmente minha configuração para corresponder à versão do servidor, que realmente resolveu o problema de recebimento:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Careta do desespero
fonte
0

Se o ramo se foi,

$ git status
On branch blah_gone_now
Your branch is based on 'origin/1234/blah_gone_now', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

$ git branch --unset-upstream

Em seguida, faça o checkout master ou o que você precisar

MCM
fonte