git pull desde el control remoto pero no se obtuvo esa referencia?

69

Tengo un espejo git en mi disco y cuando quiero actualizar mi repositorio con git pull me da un mensaje de error:

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

También me da:

  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

Cuando ejecuto make menuconfig, ¿me da la versión 3.5.7 de Linux? ¿Qué significa esto? ¿Cómo puedo actualizar mi repositorio?

Gigamegs
fuente

Respuestas:

58

Verifique la rama en la que se encuentra ( git branch), verifique la configuración para esa rama (en .../.git/config), probablemente esté en la rama incorrecta o su configuración le indica que se fusione con una (¿ahora?) Rama remota inexistente.

vonbrand
fuente
22
Para eliminar referencias de rama remotas inexistentes en su repositorio local, use git remote prune origin.
jevon
77
Otra forma de "comprobar la configuración" para una rama es: git branch -vv. Eso muestra el "control remoto" asociado de la rama.
offby1
28

En mi caso, mi sucursal local no estaba configurada para rastrear la sucursal remota. Tuve que ejecutar manualmente:

git pull origin remotebranch

Luego, la próxima vez que haga un empuje, haga "git push -u" para configurar el seguimiento correcto.

Mauvis Ledford
fuente
Lo mismo ocurre cuando git init --bare
clonas
10

En mi caso, mi sucursal local y la sucursal remota tenían diferentes mayúsculas.

Para resolver esto, eliminé mi rama local $ git branch -d branch-name, luego revisé la rama remota nuevamente usando $ git fetchy $ git checkout Branch-name.

Feckmore
fuente
Es limpio, simple y funciona bien. Gracias.
Balasubramani M
Recibí este error en la línea cmd. Intenté SmartGit con un rebase y lo superé.
P.Brian.Mackey
Haga esto una vez en lugar de eliminar la rama y volver a pagar la rama cada vez: Corrija las mayúsculas en su /.git/config
wz366
2

Es posible que alguien más en su equipo simplemente haya fusionado su sucursal y la haya eliminado (generalmente se hace después de la fusión). Puede hacer la rama en el repositorio e intentar nuevamente. Me sucede en mi empresa de vez en cuando (el bitbucket predeterminado es fusionar y eliminar).

Scott Biggs
fuente
1

En mi caso (la advertencia habitual), ya tenía una rama del nombre apropiado, así que solo tuve que agregar remote = origina mi .git / config:

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

Tuve el mismo error al quedarme sin espacio en disco. Después de cambiar el tamaño del volumen, el error desapareció.

Daniel Alder
fuente
0

Recibí este problema debido a un problema de carcasa que se manifiesta en Windows.

Mi configuración de Git se parecía a:

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

En el servidor, tanto "Error" como "error" existían como parte de múltiples ramas. Sin embargo, Windows solo puede contener uno de estos a la vez, debido a la asignación del sistema de archivos. Por lo tanto, actualicé manualmente mi configuración para que coincida con la versión del servidor, lo que realmente resolvió el problema de extracción:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Mueca de desesperación
fuente
0

Si la rama se ha ido,

$ 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

Luego haz clic en Master o lo que necesites

MCM
fuente