track remote example delete branches and git git-checkout remote-branch

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?