Si uno verificara una sucursal:
git checkout 760ac7e
por ejemplo b9ac70b
, ¿cómo se puede volver a la última cabeza conocida b9ac70b
sin conocer su SHA1?
Si recuerda qué sucursal se desprotegió antes (por ejemplo master
), simplemente
git checkout master
para salir del estado HEAD separado .
En términos generales: lo git checkout <branchname>
sacará de eso.
Si no recuerda el último nombre de la sucursal, intente
git checkout -
Esto también intenta verificar su última sucursal desprotegida.
git checkout -
- característica asesina!git checkout -b new_branch_name
hace, ¿pierde los compromisos realizados mientras está en estado HEAD separado?git gc
se ejecutan, se eliminan para siempre. Puedes verlosgit reflog
mientras estén allí.Úselo
git reflog
para encontrar los hashes de confirmaciones previamente verificadas.Un comando de acceso directo para llegar a su última rama desprotegida (aunque no estoy seguro si funciona correctamente con HEAD separado y confirmaciones intermedias) es
git checkout -
fuente
Tuve este caso extremo, donde revisé una versión anterior del código en la que mi estructura de directorio de archivos era diferente:
En un caso como este, es posible que necesite usar --force (cuando sabe que volver a la rama original y descartar los cambios es algo seguro).
git checkout master
no funcionó:git checkout master --force
(ogit checkout master -f
) trabajado:fuente
Es posible que haya realizado algunos nuevos compromisos en el
detached HEAD
estado. Creo que si haces como otras respuestas aconseja:entonces puedes perder tus commits !! En cambio, es posible que desee hacer esto:
y luego fusionarse
commits-from-detached-head
en la rama que desee, para no perder los commits.fuente