ver remotas ramas rama listar comandos cambiar git branch bitbucket tortoisegit pull

git - remotas - Su configuración especifica fusionarse con el<nombre de la sucursal> desde el control remoto, pero no se obtuvo dicha referencia.



listar ramas git (15)

Recibo este error para pull:

Su configuración especifica fusionarse con la referencia ''refs / heads / feature / Sprint4 / ABC-123-Branch'' desde el control remoto, pero no se obtuvo dicha referencia.

Este error no viene para ninguna otra rama.
Lo especial de esta rama es que se crea a partir de la confirmación previa de otra rama.

Mi archivo de configuración se ve así:

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true hideDotFiles = dotGitOnly [remote "origin"] url = <url here> fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [branch "new-develop"] remote = origin merge = refs/heads/new-develop [branch "feature/Sprint4/ABC-123-Branch"] remote = origin merge = refs/heads/feature/Sprint4/ABC-123-Branch


Lo que esto significa

Su feature/Sprint4/ABC-123-Branch ascendente, el control remoto al que llama origin ya no tiene, o tal vez nunca tuvo (es imposible saber solo con esta información) una rama llamada feature/Sprint4/ABC-123-Branch . Hay una razón particularmente común para eso: alguien (probablemente no tú, o lo recordarías) eliminó la rama en ese otro repositorio de Git.

Qué hacer

Esto depende de lo que quieras . Vea la sección de discusión a continuación. Usted puede:

  • crear o volver a crear la rama en el control remoto, o
  • eliminar su sucursal local, o
  • cualquier otra cosa que se te ocurra.

Discusión

Debe estar ejecutando git pull (si estuviera ejecutando git merge , obtendría un mensaje de error diferente o ningún mensaje de error).

Cuando ejecuta git fetch , su Git se pone en contacto con otro Git, en función de la línea de url en la sección [remote "origin"] de su configuración. Ese Git ejecuta un comando ( upload-pack ) que, entre otras cosas, envía a su Git una lista de todas las ramas. Puede usar git ls-remote para ver cómo funciona esto (pruébelo, es educativo). Aquí hay un fragmento de lo que obtengo al ejecutar esto en un repositorio de Git para git sí:

$ git ls-remote origin From [url] bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD 60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master 5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next 9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo [snip]

Las refs/heads/ entradas enumeran todas las ramas que existen en el control remoto, 1 junto con las ID de confirmación correspondientes (para refs/tags/ entradas, las ID pueden apuntar a objetos de etiqueta en lugar de confirmaciones).

Su Git toma cada uno de estos nombres de rama y lo cambia de acuerdo con las líneas de fetch en esa misma sección remote . En este caso, su Git reemplaza refs/heads/master con refs/remotes/origin/master , por ejemplo. Su Git hace esto con cada nombre de sucursal que aparece.

También registra los nombres originales en el archivo especial FETCH_HEAD (puede ver este archivo si mira en su propio directorio .git ). Este archivo guarda los nombres e ID obtenidos.

El comando git pull se entiende como un atajo conveniente: ejecuta git fetch en el control remoto apropiado, y luego git merge (o, si se le indica, git rebase ) con los argumentos necesarios para fusionar (o rebase) según lo indique el [branch ...] sección. En este caso, la [branch "feature/Sprint4/ABC-123-Branch"] dice buscar desde el origin , luego fusionarse con cualquier ID que se encuentre bajo el nombre refs/heads/feature/Sprint4/ABC-123-Branch .

Como no se encontró nada con ese nombre, git pull queja y se detiene.

Si ejecutó esto como dos pasos separados, git fetch y luego git merge (o git rebase ), su Git miraría sus ramas remotas remotes/origin/ seguimiento remoto en caché para ver en qué fusionarse o rebase. Si hubo una bifurcación de este tipo, es posible que aún tenga la bifurcación de seguimiento remoto. En este caso, no recibirá un mensaje de error. Si nunca hubo una rama de este tipo, o si ha ejecutado git fetch con --prune (que elimina las ramas muertas de seguimiento remoto), de modo que no tenga una rama de seguimiento remoto correspondiente, recibirá una queja, pero se referirá a origin/feature/Sprint4/ABC-123-Branch lugar.

En cualquier caso , podemos concluir que la feature/Sprint4/ABC-123-Branch no existe ahora en el origin nombre remoto.

Probablemente existió en algún momento, y probablemente creó su sucursal local desde la sucursal de seguimiento remoto. Si es así, probablemente todavía tenga la rama de seguimiento remoto. Puede investigar para ver quién eliminó la rama del control remoto y por qué, o simplemente puede presionar algo para volver a crearla o eliminar su rama de seguimiento remoto y / o su rama local.

1 Bueno, todo lo que va a admitir , al menos. Pero a menos que hayan ocultado específicamente algunas referencias, la lista incluye todo.


Acabo de recibir exactamente este error al hacer "git pull" cuando mi disco estaba lleno. Creé algo de espacio y todo comenzó a funcionar bien nuevamente.


Compruebe si su rama remota está disponible para extraer. Tuve el mismo problema, finalmente me di cuenta de que alguien eliminó la rama remota.


En mi caso, había eliminado la rama original de la que derivaba mi rama actual. Entonces, en el archivo .git / config tuve:

[branch "simil2.1.12"] remote = origin merge = refs/heads/simil2.0.5 rebase = false

el simil2.0.5 fue eliminado. Lo reemplacé con el mismo nombre de rama:

[branch "simil2.1.12"] remote = origin merge = refs/heads/simil2.1.12 rebase = false

Y funcionó


En mi caso, simplemente carecía de confirmación inicial en la rama remota, por lo que la rama local no encontraba nada que extraer y estaba dando ese mensaje de error.

Yo si:

git commit -m ''first commit'' // on remote branch git pull // on local branch


Estaba enfrentando el mismo problema donde mi sucursal actual era dev y estaba yendo a la sucursal MR y haciendo git pull a partir de entonces. Una solución fácil que tomé fue que creé una nueva carpeta para MR Branch e hice git pull allí seguido de git clone.

Básicamente, mantuve diferentes carpetas para insertar código en diferentes ramas.


Este error también se puede recibir cuando el nombre de la sucursal de origen tiene algún problema de caso.

Por ejemplo: la sucursal de origen es team1-Team y la sucursal local se ha team1-team como team1-team . Entonces, esta T en -Team y t en -team puede causar tal error. Esto sucedió en mi caso. Entonces, al cambiar el nombre local con el nombre de la rama de origen, se resolvió el error.


Esto también puede suceder si usted / alguien cambió el nombre de la sucursal. Por lo tanto, siga estos pasos (si sabe que el nombre de la sucursal cambia de nombre) Asumiendo el nombre de la sucursal anterior como nombre de rama wrong-branch-name y alguien lo renombró a correct-branch-name .

git checkout correct-branch-name

git pull (verá esto "Su configuración especifica ..")

git branch --unset-upstream

git push --set-upstream origin correct-branch-name

git pull (no recibirá el mensaje anterior)


Para mí fue un problema de mayúsculas y minúsculas. Mi sucursal local era Version_feature2 en lugar de Version_Feature2. Volví a revisar mi rama con la carcasa correcta y luego git pull funcionó.


Para mí, esto sucedió porque fusioné un desarrollador de rama en maestro usando la interfaz web y luego intenté sincronizar / extraer usando VSCode que estaba abierto en la rama de desarrollo (es extraño que no pueda cambiar a maestro sin obtener este error).

git pull Your configuration specifies to merge with the ref ''refs/heads/dev'' from the remote, but no such ref was fetched.''

Tiene sentido que no lo encuentre refs / heads / dev: para mí fue más fácil eliminar la carpeta local y clonar nuevamente.


Puede editar el archivo ~/.gitconfig en su carpeta de inicio. Aquí es donde se guardan todas las configuraciones globales.

O use git config --global --unset-all remote.origin.url y luego ejecute git fetch con la url del repositorio.


Recibí un error similar cuando la causa real era que mi disco estaba lleno. Después de eliminar algunos archivos, git pull comenzó a funcionar como esperaba.


Seguí encontrándome con este problema. En mi caso, el comentario de @ Jerreck sobre las diferencias de casos en los nombres de las ramas fue la causa de este error. Algunas herramientas de Windows no son conscientes de mayúsculas y minúsculas.

Para desactivar mayúsculas y minúsculas en git, ejecute este comando:

git config --global core.ignorecase true

Tenga en cuenta que esto afectará más que los nombres de las sucursales. Por ejemplo, si tiene "Foo.h" y "foo.h" en el mismo directorio (no es una buena idea al crear software para Windows), sospecho que no puede desactivar la distinción entre mayúsculas y minúsculas.


Si otro tirón simplemente funciona, significa que su internet no estaba conectado.


Solo verifique si alguien eliminó la rama en el control remoto.