remote - ¿Por qué Git me dice "Actualmente no estoy en ninguna rama" después de ejecutar "git checkout origin/<branch>"?
git pull remote branch example (1)
La salida del git status
de git status
indica que su directorio de trabajo está limpio; bueno.
Ahora corriendo
git checkout origin/web-zach
está intentando verificar una rama de seguimiento remoto , llamada origin/web-zach
; es un tipo especial de rama, local a su repositorio, que realiza un seguimiento de la rama correspondiente, web-zach
, que vive en el repositorio remoto llamado origin
.
Sin embargo, la referencia HEAD
(que se puede considerar como un marcador de You-are-here en un mapa) no puede apuntar a una rama de seguimiento remoto; solo a una rama local "normal", o a una confirmación directamente. Cuando intenta verificar una rama de seguimiento remoto, la referencia HEAD
termina apuntando directamente a la punta de la rama de seguimiento remoto (es decir, la confirmación a la que apunta esa rama de seguimiento remoto):
Cuando HEAD
no apunta a una rama local "normal", sino que apunta a una confirmación directamente , se termina en el llamado "estado HEAD desconectado". No es el fin del mundo, pero evitar el aterrizaje en ese estado tanto como sea posible (al menos al comienzo de tu aprendizaje de Git) probablemente te ahorrará algunas sorpresas.
Para remediar la situación, debe volver a conectar HEAD
a alguna sucursal local . Aquí, es posible que desee crear y revisar una rama local de este tipo , ejecutando, por ejemplo
git checkout -b web-zach
HEAD
luego estará apuntando a la nueva sucursal local llamada web-zach
:
Entonces, deberías obtener
$ git status
On branch web-zach
Untracked files:
(use "git add <file>..." to include in what will be committed)
.cordova/config.xml
www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)
Después de eso, podrá hacer cambios, organizarlos, confirmarlos y (si tiene acceso de escritura al repositorio remoto correspondiente al origin
y nadie más ha enviado nada a origin/web-zach
desde su última git fetch
) empujar usando
git push -u origin web-zach
Estaba tratando de seguir las instrucciones de Git: "Actualmente no estoy en ninguna rama". ¿Hay una manera fácil de volver a una sucursal, manteniendo los cambios? pero git checkout
parece estar roto:
$ git checkout origin/web-zach
HEAD is now at 1366cb1... Changed so css files not ignored
$ git status
# Not currently on any branch.
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .cordova/config.xml
# www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)
Más específicamente, me preocupa el mensaje "No está actualmente en ninguna rama". git checkout
no parece hacer nada aquí ... ¿No es todo el propósito de ese comando ponerme en una rama? ¿Cómo puedo volver a una rama y cometer / empujar de nuevo?