Ejecutaste git reset --hard por error y "perdiste" commits. ¿Qué puede salvarte?
Opciones
- Nada; los commits se pierden para siempre tras un reset
git reflogmuestra dónde estaba HEAD, así que puedes restaurarlo (Opción correcta)- Reinstalar Git en la máquina en la que trabajas
- Eliminar la carpeta .git y clonar el repo otra vez
Respuesta
git reflog muestra a dónde apuntaba HEAD, así que puedes encontrar el hash del commit y restaurarlo con git reset o git checkout
Por qué
Git rara vez elimina commits de inmediato. git reflog es un log local de cada posición en la que ha estado HEAD (commits, resets, checkouts, rebases).
Busca el hash de antes del error (HEAD@{3}) y restáuralo: git reset --hard <hash> o crea una rama ahí: git branch rescue <hash>.
Los commits sin referencias se conservan unos 30 a 90 días antes del garbage collection. Sin embargo, los cambios sin commit perdidos con un hard reset no se pueden recuperar así.
git reflog
git branch rescue HEAD@{2}Recuerda
reflog = el historial de deshacer de HEAD en Git.