¿Qué es el estado Detached HEAD en Git y por qué ocurre?
El error o estado conocido como Detached HEAD (cabeza desacoplada) en Git ocurre cuando realizas un cambio de contexto o checkout directamente a un commit específico utilizando su hash SHA, en lugar de apuntar a una rama (branch) activa. En este estado, cualquier commit que realices no pertenecerá a ninguna rama, lo que puede causar que pierdas tu trabajo si cambias de rama sin antes guardarlo correctamente.
Las causas más comunes incluyen la navegación por el historial de commits para depuración rápida o errores al ejecutar comandos como git checkout [commit-hash] sin crear una rama temporal de manera previa.
Método 1: Crear una rama temporal para conservar los cambios actuales
Si te encuentras en este estado y has realizado nuevos commits que no quieres perder, la forma más segura de conservar tu trabajo es crear una nueva rama en ese mismo instante.
- Abre tu terminal en el directorio del repositorio.
- Ejecuta el siguiente comando para crear y cambiarte a una nueva rama con el trabajo actual:
git checkout -b mi-nueva-rama - Verifica que todo esté correcto ejecutando
git status. Tus cambios ahora están seguros y asociados a una rama persistente.
Método 2: Volver a la rama principal sin guardar los cambios experimentales
Si solo estabas revisando código antiguo y no te importan los cambios experimentales realizados en el estado de cabeza desacoplada, puedes regresar a tu rama de trabajo anterior (por ejemplo, main o master) descartando la sesión actual.
- Asegúrate de no tener cambios sin confirmar que necesites mediante
git status. - Vuelve a la rama principal ejecutando:
git checkout main(reemplaza main por master u otra rama si es necesario). - Git te advertirá sobre los commits desacoplados; puedes ignorarlo si estabas probando código desechable.