Mi problema esta relacionado con error Fatal Git al cambiar de rama .
Intento buscar una rama remota con el comando
git checkout -b local-name origin/remote-name
pero recibo este mensaje de error:
fatal: git checkout: la actualización de rutas es incompatible con el cambio de ramas.
¿Tenía la intención de pagar 'origen / nombre remoto' que no se puede resolver como commit?
Si creo manualmente una rama y luego extraigo la rama remota, funciona, al igual que hacer un nuevo clon y verificar la rama.
¿Por qué no funciona en el repositorio con el que trabajo?
Respuestas:
Creo que esto ocurre cuando estás tratando de pagar una rama remota que tu repositorio local de git aún no conoce. Tratar:
Si la rama remota que desea pagar está en "Nuevas ramas remotas" y no en "Ramas remotas rastreadas", primero debe buscarlas:
Ahora debería funcionar:
fuente
git fetch
obtendrá todas las ramas de todos los repositorios remotos.git remote update
antes de que su búsqueda recupere ese control remoto. De lo contrario, recibirá mensajes comoDid you intend to checkout 'upstream-repo/master' which can not be resolved as commit?
Agregue esto a la respuesta y ahorre a las personas horas de leer las mismas respuestas que solo funcionan para el origen.Sintaxis alternativa,
fuente
--depth
calificador para el clon original puede tener la culpa aquí. Tuve éxito congit fetch remote_branch_name:local_branch_name
pero todos los otros consejos fallaron.Después de haber probado la mayor parte de lo que podía leer en este hilo sin éxito, me topé con este: la rama remota no aparece en "git branch -r"
Resultó que mi archivo .git / config era incorrecto. Después de hacer una solución simple, aparecieron todas las ramas.
Ir desde
a
Hizo el truco
fuente
No estoy seguro de si esto es útil o exactamente relevante para su pregunta, pero si está tratando de obtener y pagar solo un solo ramal desde el repositorio remoto, a continuación, los siguientes comandos git hará el truco:
fuente
ninguno de los anteriores funcionó para mí. Mi situación es ligeramente diferente, mi rama remota no está en origen . pero en un repositorio diferente.
Consejo: si no ve la rama remota en la siguiente salida,
git branch -v -a
no hay forma de verificarla.Confirmado trabajando en 1.7.5.4
fuente
git branch -v -a
: Tenía un control remoto configurado incorrectamente que decíafetch = +refs/heads/*:refs/remotes/master/*
aunque se llamó al control remotoupstream
.Para mí lo que funcionó fue:
Lo que lleva todas las referencias a su máquina para todas las ramas en el control remoto. Entonces podría hacer
Y eso funcionó perfectamente. Similar a la respuesta más votada, pero un poco más simple.
fuente
Sospecho que no hay una rama remota llamada nombre-remoto, pero que sin querer ha creado una rama local llamada origen / nombre-remoto.
¿Es posible que en algún momento escribiste:
¿Creando así una rama local llamada origen / nombre remoto? Escriba este comando:
Verás:
lo que significa que es realmente una rama local mal nombrada, o
lo que significa que realmente es una rama remota.
fuente
No es muy intuitivo, pero esto funciona bien para mí ...
ENTONCES ejecute el comando git branch --track ...
fuente
Para mí tenía un error tipográfico y mi rama remota no existía
Use
git branch -a
para enumerar ramas remotasfuente
¿Podría su problema estar vinculado a esta otra pregunta SO "problema de pago" ?
es decir: un problema relacionado con:
git checkout -b [<new_branch>] [<start_point>]
con[<start_point>]
referencia al nombre de una confirmación en la que iniciar la nueva rama, y'origin/remote-name'
no es eso.(mientras
git branch
que admite un punto_inicial siendo el nombre de una rama remota)Nota: lo que dice el script checkout.sh es:
Es como si la sintaxis git checkout -b [] [remote_branch_name] cambiara el nombre de la rama y restableciera el nuevo punto de inicio de la nueva rama, que se considera incompatible.
fuente
Después de buscar un millón de veces, todavía no se mostraban controles remotos agregados, aunque los blobs estaban en el grupo. Resulta que la opción --tags no se debe dar a
git remote add
por cualquier razón. Puede eliminarlo manualmente de .git / config para que git fetch cree las referencias.fuente