¿Qué es el error Detached HEAD en Git?
El estado Detached HEAD (cabeza desacoplada) en Git ocurre cuando realizas un cambio de contexto (git checkout) directamente a un commit específico en lugar de hacerlo a una rama activa. En esta situación, los commits que realices no pertenecerán a ninguna rama, lo que puede provocar la pérdida de tu trabajo si cambias de rama sin tomar precauciones.
Causas principales de este estado
Las razones más comunes por las que te encuentras en este estado incluyen:
- Ejecutar
git checkout [hash-del-commit]para revisar el código de un punto específico en el tiempo. - Seleccionar un commit antiguo desde una interfaz gráfica (GUI) como GitKraken, VS Code o SourceTree.
- Errores al automatizar scripts de integración continua (CI/CD).
Método 1: Crear una nueva rama temporal para guardar los cambios
Si te encuentras en estado Detached HEAD y has realizado nuevos commits que no quieres perder, la forma más rápida y segura es crear una nueva rama en ese mismo punto exacto.
- Ejecuta el siguiente comando para crear y cambiarte a una nueva rama temporal:
git checkout -b mi-rama-recuperada - Verifica que estás en la nueva rama escribiendo:
git status - Fusiona esta rama con tu rama principal (por ejemplo,
mainodevelop) cuando estés listo.
Método 2: Volver a la rama original y descartar cambios no guardados
Si no realizaste ningún commit nuevo y solo estabas explorando el código, simplemente debes regresar a la última rama en la que estabas trabajando.
- Identifica tu rama anterior ejecutando:
git switch main(reemplaza 'main' por el nombre de tu rama habitual). - Si Git te muestra advertencias sobre cambios sin confirmar, puedes descartarlos de manera segura (si no los necesitas) con:
git reset --hard - Verifica que tu repositorio vuelva a la normalidad ejecutando
git status.