Git checkout: actualizar rutas es incompatible con cambiar de rama

Resuelto Ikke asked hace 15 años • 11 respuestas

Mi problema está relacionado con un error fatal de Git al cambiar de rama .

Intento recuperar una rama remota con el comando

git checkout -b local-name origin/remote-name

pero me sale este mensaje de error:

fatal: git checkout: actualizar rutas es incompatible con cambiar de rama.
¿Tenía la intención de verificar 'origen/nombre-remoto' que no se puede resolver como confirmación?

Si creo manualmente una rama y luego extraigo la rama remota, funciona, igual que hacer un nuevo clon y verificar la rama.

¿Por qué no funciona en el repositorio con el que trabajo?

Ikke avatar Jun 03 '09 23:06 Ikke
Aceptado

Creo que esto ocurre cuando intentas verificar una sucursal remota que tu repositorio de git local aún no conoce. Intentar:

git remote show origin

Si la sucursal remota que desea verificar se encuentra en "Nuevas sucursales remotas" y no en "Sucursales remotas rastreadas", entonces debe buscarlas primero:

git remote update
git fetch

Ahora debería funcionar:

git checkout -b local-name origin/remote-name
user167628 avatar Sep 03 '2009 02:09 user167628

Sintaxis alternativa,

git fetch origin remote_branch_name:local_branch_name
Rare Pleasures avatar Oct 23 '2009 17:10 Rare Pleasures

Después de haber probado la mayor parte de lo que pude 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

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/master:refs/remotes/origin/master

a

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Hizo el truco

PålOliver avatar Jul 05 '2013 09:07 PålOliver

No estoy seguro de si esto es útil o exactamente relevante para su pregunta, pero si está intentando recuperar y verificar solo una rama del repositorio remoto, los siguientes comandos de git funcionarán:

url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>

git init
git remote add origin $url
git fetch origin $branch:origin/$branch
git checkout -b $branch --track origin/$branch
VirtualStaticVoid avatar Feb 23 '2011 20:02 VirtualStaticVoid

Nada de lo anterior funcionó para mí. Mi situación es ligeramente diferente, mi sucursal remota no está en origen . pero en un repositorio diferente.

git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname

Consejo: si no ve la rama remota en el siguiente resultado, git branch -v -ano hay forma de verificarla.

Confirmado trabajando en 1.7.5.4

Olivier Refalo avatar Jul 11 '2011 20:07 Olivier Refalo