Saltar al contenido

¿Por qué mi repositorio de Git entró en un estado HEAD separado?

Solución:

Cualquier verificación de una confirmación que no sea el nombre de uno de tu Las ramas le darán una CABEZA separada. Un SHA1 que representa la punta de una rama todavía da una CABEZA separada. Solo una caja de una sucursal local nombre evita ese modo.

Ver comprometerse con un HEAD indiferente

Cuando HEAD se desconecta, las confirmaciones funcionan como de costumbre, excepto que no se actualiza ninguna rama con nombre. (Puede pensar en esto como una rama anónima).

texto alternativo

Por ejemplo, si realiza el pago de una “sucursal remota” sin rastrearla primero, puede terminar con un HEAD separado.

Ver git: cambiar de rama sin separar la cabeza

Sentido: git checkout origin/main (o origin/master en los viejos tiempos) resultaría en:

Note: switching to 'origin/main'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at a1b2c3d My commit message

Es por eso que no debes usar git checkout más, pero el nuevo git switch mando.

Con git switch, el mismo intento de “pagar” (cambiar a) una sucursal remota fallaría inmediatamente:

git switch origin/main
fatal: a branch is expected, got remote branch 'origin/main'

Para agregar más sobre git switch:

Con Git 2.23 (agosto de 2019), no tiene que usar el confuso git checkout comando más.

git switch también puede verificar una rama y obtener una HEAD separada, excepto:

  • tiene un explícito --detach opción

Para comprobar el compromiso HEAD~3 para una inspección temporal o un experimento sin crear una nueva rama:

git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
  • no puede separar por error una rama de seguimiento remoto

Ver:

C:Usersvoncarepo>git checkout origin/master
Note: switching to 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

Vs. usando el nuevo git switch mando:

C:Usersvoncarepo>git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'

Si desea crear una nueva sucursal local rastreando una sucursal remota:

git switch <branch> 

Si <branch> no se encuentra, pero existe una rama de seguimiento en exactamente un control remoto (llámelo <remote>) con un nombre coincidente, tratar como equivalente a

git switch -c <branch> --track <remote>/<branch>

¡No más errores!
¡No más CABEZAS desprendidas no deseadas!

Reproduje esto hace un momento por accidente:

  1. enumera las ramas remotas

    git branch -r
          origin/Feature/f1234
          origin/master
    
  2. Quiero pagar uno localmente, así que corté la pasta:

    git checkout origin/Feature/f1234
    
  3. ¡Presto! Estado de HEAD separado

    You are in 'detached HEAD' state. [...])
    

Solución # 1:

No incluye origin/ en la parte delantera de la especificación de mi rama al verificarlo:

git checkout Feature/f1234

Solución # 2:

Agregar -b parámetro que crea una rama local desde el control remoto

git checkout -b origin/Feature/f1234 o

git checkout -b Feature/f1234 volverá al origen automáticamente

tratar

git reflog 

esto le brinda un historial de cómo se movieron sus punteros HEAD y branch en el pasado.

p.ej :

88ea06b [email protected]{0}: pago: pasar de DESARROLLO a controles remotos / origin / SomeNiceFeature e47bf80 [email protected]{1}: desarrollo de origen de extracción: avance rápido

la parte superior de esta lista es una razón por la que uno podría encontrar un estado DETACHED HEAD … verificando una rama de seguimiento remoto.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *