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.