Git checkout: actualizar rutas es incompatible con cambiar de rama
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?
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
Sintaxis alternativa,
git fetch origin remote_branch_name:local_branch_name
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
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
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 -a
no hay forma de verificarla.
Confirmado trabajando en 1.7.5.4