Git Reflog
Última actualización
git reflog registra cada lugar al que ha apuntado HEAD: cada commit, checkout, reset y rebase. Como Git conserva esos commits durante un tiempo incluso después de que salgan de tus ramas, el reflog es tu red de seguridad: te permite encontrar y recuperar el trabajo que un reset --hard, un rebase fallido o una rama eliminada parecían haber destruido.
Prueba esto en el terminal playground: una shell real en tu navegador, sin nada que instalar.
Sintaxis
| Command | What it does |
|---|---|
git reflog | Muestra las posiciones recientes de HEAD, con sus hashes |
git reflog show <branch> | Muestra el reflog de una rama |
git reset --hard HEAD@{1} | Devuelve HEAD a una posición anterior |
git branch recovered <hash> | Recrea una rama en un commit perdido |
Recuperarse tras un error
Deshaz un reset erróneo encontrando el commit anterior al reset.
| Step | Command | Result |
|---|---|---|
| 1 | git reflog | Encuentra el commit anterior al reset |
| 2 | git reset --hard HEAD@{1} | Restaura tu rama a ese punto |
Preguntas frecuentes sobre git reflog
¿Qué es git reflog?
HEAD (y la punta de cada rama) en tu repositorio local: tras commits, checkouts, resets, merges y rebases. A diferencia de git log, que sigue la ascendencia de los commits, el reflog es un registro cronológico de tus acciones, y eso es lo que lo hace útil para la recuperación.¿Cómo recupero un commit tras git reset --hard?
git reflog para encontrar la entrada del commit en el que estabas antes del reset (algo como HEAD@{1}), y luego git reset --hard <that-hash> (o HEAD@{1}) para volver a él. El commit no se eliminó realmente: solo dejó de tener una rama que lo apuntara, y el reflog aún conoce su hash.¿Cómo restauro una rama eliminada?
git reflog y luego recrea la rama ahí: git branch <name> <hash>. Mientras la eliminación sea reciente (dentro del periodo de expiración del reflog de Git, normalmente semanas), los commits siguen siendo alcanzables de esta forma.¿Funciona git reflog entre clones?
¿Puedo practicar esto en línea?
git reflog en una shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre cómo deshacer cambios y recuperar trabajo paso a paso.