Saltar al contenido

Su configuración especifica fusionarse con el desde el control remoto, pero no se obtuvo tal ref.?

Deseamos mostrarte la mejor solución que hemos encontrado por todo internet. Nosotros queremos que te resulte útil y si puedes aportar alguna mejora hazlo con libertad.

Solución:

Lo que esto significa

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

Qué hacer

Esto depende de lo que Ud. querer. Vea la sección de discusión a continuación. Puede:

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

Discusión

debes estar corriendo git pull (si estuvieras corriendo git merge obtendría un mensaje de error diferente, o ningún mensaje de error).

cuando corres git fetchsu Git se comunica con otro Git, según el url alinearse debajo de la [remote "origin"] sección de su configuración. Ese Git ejecuta un comando (upload-pack) que, entre otras cosas, envía su Git una lista de todas las sucursales. Puedes usar git ls-remote para ver cómo funciona esto (pruébalo, es educativo). Aquí hay un fragmento de lo que obtengo cuando ejecuto esto en un repositorio de Git para git sí mismo:

$ 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]

Él refs/heads/ las entradas enumeran todas las sucursales que existen en el control remoto,1 junto con los ID de confirmación correspondientes (por refs/tags/ entradas, los ID pueden apuntar a objetos de etiquetas en lugar de confirmaciones).

Tu Git toma cada uno de estos nombres de rama y cambios según el fetch línea(s) en ese mismo remote sección. En este caso, su Git reemplaza refs/heads/master con refs/remotes/origin/master, por ejemplo. Tu Git hace esto con cada nombre de rama que aparece.

También registra los nombres originales en el archivo especial FETCH_HEAD (puedes ver este archivo si echas un vistazo a tu propio .git directorio). Este archivo guarda los nombres e ID obtenidos.

Él git pull El comando está pensado como un atajo conveniente: se ejecuta git fetch en el control remoto apropiado, y luego git merge (o, si así se le indica, git rebase) con los argumentos necesarios para fusionar (o reorganizar) según lo indique el [branch ...] sección. En este caso, su [branch "feature/Sprint4/ABC-123-Branch"] la sección dice buscar de originluego combínelo 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 se queja y se detiene.

Si ejecutó esto como dos pasos separados, git fetch y luego git merge (o git rebase), su Git miraría su caché remotes/origin/ sucursales de seguimiento remoto para ver con qué fusionarse o reorganizarse. Sí hay era tal rama a la vez, aún puede tener la rama de seguimiento remoto. En este caso, no obtendría un mensaje de error. Si nunca hubo tal sucursal, o si ha corrido 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 en cambio.

En cualquier casopodemos concluir que feature/Sprint4/ABC-123-Branch no existe ahora en el control remoto llamado origin.

Probablemente existió alguna vez, y probablemente creó su sucursal local a partir de 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 sucursal del control remoto y por qué, o simplemente presionar algo para volver a crearla, o eliminar su sucursal de seguimiento remoto y/o su sucursal local.


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

Editar, julio de 2020: Hay un nuevo protocolo de búsqueda que puede evitar la lista todo, y solo enumere los nombres que su Git dice que está buscando. Esto puede ayudar con los repositorios que tienen una gran cantidad de ramas y/o etiquetas. Sin embargo, si su Git está interesado en todos los nombres posibles, obtendrá todos los nombres aquí.

Esto también puede suceder si usted/alguien cambió el nombre de la rama. Así que siga estos pasos (si sabe que el nombre de la sucursal ha cambiado de nombre) Asumiendo que el nombre de la sucursal anterior es wrong-branch-name y alguien lo renombró a correct-branch-name Asi que.

git checkout correct-branch-name

git pull (verás esto “Tu configuración especifica…”)

git branch --unset-upstream

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

git pull (no recibirás el mensaje anterior)

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

Calificaciones y reseñas

Agradecemos que desees añadir valor a nuestra información contribuyendo tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *