git pull de la télécommande mais aucune référence n'a été récupérée?

69

J'ai un miroir git sur mon disque et quand je veux mettre à jour mon dépôt avec git pull, il me donne un message d'erreur:

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

Cela me donne aussi:

  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

Quand je lance make menuconfig, il me donne la version 3.5.7 de Linux? Qu'est-ce que ça veut dire? Comment puis-je mettre à jour mon repo?

Gigamegs
la source

Réponses:

58

Vérifiez la branche sur laquelle vous vous trouvez ( git branch), vérifiez la configuration de cette branche (en .../.git/config), vous êtes probablement sur la mauvaise branche ou votre configuration vous indique de fusionner avec une branche distante (maintenant?) Non existante.

vonbrand
la source
22
Pour supprimer les références de branches distantes non existantes dans votre référentiel local, utilisez git remote prune origin.
jevon
7
Une autre façon de "vérifier la configuration" d'une branche est la suivante git branch -vv:. Cela affiche la "distante" associée à la branche.
offby1
28

Dans mon cas, ma branche locale n'était pas configurée pour suivre la branche distante. Je devais exécuter manuellement:

git pull origin remotebranch

Ensuite, la prochaine fois que vous ferez un push, faites "git push -u" pour configurer le suivi correct.

Mauvis Ledford
la source
Il en va de même lorsque vous git init --bare
clonez
10

Dans mon cas, ma branche locale et ma branche distante avaient une capitalisation différente.

Pour résoudre ce problème, j'ai supprimé ma branche locale $ git branch -d branch-name, puis extrait à nouveau la branche distante à l'aide de $ git fetchet $ git checkout Branch-name.

Feckmore
la source
C'est propre, simple et fonctionne bien. Je vous remercie.
Balasubramani M
J'ai eu cette erreur dans la ligne de commande. Essayé SmartGit avec un rebase et passé au-dessus.
P.Brian.Mackey
Faites-le une fois au lieu de supprimer et de revérifier une branche à la fois: Corrigez la capitalisation dans votre /.git/config
wz366
2

Il est possible que quelqu'un d'autre de votre équipe ait simplement fusionné votre branche et l'a supprimée (ce qui est généralement fait après la fusion). Vous pouvez créer la branche sur le référentiel et réessayer. C'est ce qui m'arrive de temps en temps dans mon entreprise (la fusion et la suppression par défaut de bitbucket).

Scott Biggs
la source
1

Dans mon cas (la mise en garde habituelle), j'avais déjà une branche du nom approprié alors je n'avais qu'à ajouter remote = originà mon fichier .git / config:

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

J'ai eu la même erreur lorsque je manque d'espace disque. Après le redimensionnement du volume, l’erreur avait disparu.

Daniel Alder
la source
0

J'ai eu ce problème en raison d'un problème de boîtier qui se manifeste sous Windows.

Ma configuration Git ressemblait à:

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

Sur le serveur, "Bug" et "bug" existaient dans plusieurs branches. Cependant, Windows ne peut en contenir qu'un seul à la fois, en raison du mappage du système de fichiers. Par conséquent, j'ai manuellement mis à jour ma configuration pour qu'elle corresponde à la version du serveur, ce qui a résolu le problème de tirage:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Grimace du désespoir
la source
0

Si la branche est parti,

$ 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

Puis checkout master ou tout ce dont vous avez besoin

MCM
la source