¿Qué es el Error 'Detached HEAD' en Git y por qué ocurre?
El estado Detached HEAD (cabeza desacoplada) en Git ocurre cuando realizas un cambio de contexto (checkout) directamente a un commit específico en lugar de hacerlo a una rama. En este punto, tu repositorio ya no apunta a la última versión de ninguna rama local, sino a un commit estático. Si realizas cambios y commits en este estado, corres el riesgo de perderlos al cambiar de rama.
Causas comunes del estado Detached HEAD
- Ejecutar el comando
git checkout [hash-del-commit]para inspeccionar una versión anterior. - Seleccionar un commit específico directamente desde una interfaz gráfica como GitKraken, VS Code o SourceTree.
- Errores al automatizar scripts de despliegue en entornos de integración continua (CI/CD).
Método 1: Volver a una rama existente sin guardar los cambios actuales
Si entraste por error en el modo Detached HEAD y no has realizado ningún commit nuevo que necesites conservar, la solución es simplemente regresar a tu rama de trabajo habitual.
- Lista las ramas disponibles en tu repositorio ejecutando:
git branch - Vuelve a tu rama principal o de trabajo con el comando:
git checkout nombre-de-tu-rama(ogit switch nombre-de-tu-rama). - Verifica que todo esté en orden ejecutando:
git status
Método 2: Guardar los cambios realizados en una nueva rama
Si realizaste modificaciones y commits mientras estabas en el estado Detached HEAD y no quieres perder ese código, debes crear una nueva rama temporal para rescatar tu trabajo.
- Crea una nueva rama a partir del commit actual en el que te encuentras ejecutando:
git checkout -b nueva-rama-resguardo - Haz un commit de tus cambios pendientes si aún no lo has hecho:
git add .ygit commit -m 'Guardando cambios de HEAD desacoplado' - Fusiona esta nueva rama con tu rama de desarrollo principal si es necesario:
git checkout mainseguido degit merge nueva-rama-resguardo