Comprender y resolver el problema del encabezado separado de Git

Comprender Y Resolver El Problema Del Encabezado Separado De Git



En Git Bash, HEAD es la rama donde trabaja el desarrollador. Como usuario profesional de Git Bash, es posible que haya oído hablar del estado HEAD separado. Algunos usuarios encuentran esta condición alarmante en realidad, solo significa que su HEAD apunta a la confirmación específica en lugar de a la rama.

Esta guía contiene contenido sobre la comprensión profunda de los estados normales de HEAD desconectados y soluciones para resolver el HEAD desconectado, incluido el siguiente contenido:

¿Cuál es el estado HEAD normal en Git?

El estado normal de HEAD en Git es donde su HEAD apunta a la rama actual. Cuando el usuario cambia entre diferentes ramas, el HEAD también cambia a esa rama. Consulte los siguientes pasos para una demostración práctica.







Paso 1: Mostrar el estado del registro
Abra Git Bash y muestre el registro del proyecto usando el “registro de git” dominio:



registro de git



Actualmente, nuestro HEAD apunta al ' maestro ' rama.





Paso 2: cambiar de sucursal
Ahora, cambie a otra sucursal local y luego verifique la posición del puntero HEAD. Por ejemplo, estamos revisando el ' característica ' rama:

git pago característica



La sucursal ha sido cambiada a “ característica ”.

Paso 3: verificar el registro
Vea el estado del registro del repositorio nuevamente y verifique el estado HEAD para verificación:

registro de git

Según el siguiente resultado, nuestro HEAD ahora apunta a la rama 'característica':

Entonces, este es el escenario HEAD normal en Git Bash.

¿Qué significa el estado principal independiente?

Como mencionamos anteriormente, se produce un estado HEAD separado cuando HEAD apunta a la confirmación en lugar de a la rama. Cuando cambia a la última confirmación, su HEAD apuntará a la confirmación, y este es el estado HEAD separado. Para una mejor comprensión, consulte el manual práctico.

Paso 1: verificar el estado del cabezal
Primero, muestre el registro para ver el estado HEAD ejecutando este comando en Git Bash:

registro de git --en línea

Actualmente, HEAD señala el ' característica ' rama.

Paso 2: consulte el compromiso
Cambiemos HEAD a la última confirmación usando el siguiente comando junto con el hash SHA:

git pago b8d840c

Verá que el estado HEAD separado aparece al cambiar a la confirmación en lugar de a la rama.

Paso 3: Verifique nuevamente el estado del cabezal
Ahora, si muestra el registro para verificar el estado HEAD, verá que apunta a la confirmación:

registro de git --en línea

Aquí está el estado HEAD separado de Git.

¿Qué situaciones crean estados HEAD separados?

Hay dos situaciones en las que se puede ver un estado HEAD desconectado; consulte la siguiente tabla:

Situación 1 Cuando el usuario cambia a la confirmación de hash SHA en lugar de la rama.
Situación 2 Cuando el usuario cambia a la rama remota antes de recuperarla.

¿Cómo resolver problemas HEAD separados de Git?

Ahora, veamos cómo puedes resolver el problema de HEAD desconectado. Es bastante sencillo de resolver, simplemente cree una nueva rama, cambie a ella y confirme los cambios. Para verlo prácticamente, consulte las instrucciones proporcionadas.

Paso 1: crea una nueva sucursal
Primero, cree la nueva rama a través del “rama git” dominio:

rama git nuevo

Paso 2: cambie a la rama creada
Después de eso, cambie a él a través del “cambio de git” comando y escriba el nombre de la rama:

git cambiar nuevo

Paso 3: confirmar cambios
Confirme los cambios aplicados y especifique el mensaje usando ' metro ' etiqueta:

git comprometerse -metro 'rama conmutada'

Paso 4: verificar el registro
Ahora, verifique el estado del HEAD mostrando el registro:

registro de git

Así es como puede resolver el estado HEAD desconectado.

Conclusión

El estado HEAD separado de Git apareció cuando HEAD apuntaba a la confirmación en lugar de a la rama. Para resolverlo, simplemente cree una nueva rama, cambie a ella y confirme los cambios. Ha aprendido detalladamente sobre los problemas de HEAD separados en Git.