Menu
Coddy logo textTech

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.

git reflog registra cada posición por la que pasó HEAD, así que un commit perdido por un reset o rebase puede encontrarse y restaurarse.

Sintaxis

CommandWhat it does
git reflogMuestra 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.

StepCommandResult
1git reflogEncuentra el commit anterior al reset
2git reset --hard HEAD@{1}Restaura tu rama a ese punto

Preguntas frecuentes sobre git reflog

¿Qué es git reflog?
Es un registro de todos los lugares a los que ha apuntado 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?
Ejecuta 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?
Encuentra el último commit de la rama en 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?
No: el reflog es local a tu repositorio y no se sube ni se clona. Solo registra las acciones de tu máquina. Por eso puede rescatar errores locales, pero no puede recuperar algo que solo existió en un clon distinto.
¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar 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.
Coddy programming languages illustration

Aprende Git con Coddy

COMENZAR