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?

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.


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.


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.


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).


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


1

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


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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.