Git Reset y Reflog
Aprende a deshacer cambios y a rastrear la historia de tu repositorio usando git reset
y git reflog
.
1️⃣ Git Reset
git reset
se utiliza para deshacer cambios en el área de staging y en el directorio de trabajo. Hay diferentes modos de uso:
a. git reset --soft
Descripción: Este comando mueve el puntero HEAD a la referencia anterior, pero mantiene los cambios en el área de staging (index).
Uso:
git reset --soft <commit>
b. git reset --hard
Descripción: Este comando restablece el puntero HEAD a la referencia anterior y elimina todos los cambios en el área de staging y en el directorio de trabajo. (Mala práctica en muchas situaciones, ya que elimina cambios no guardados)
Uso:
git reset --hard <commit>
2️⃣ Git Reflog
git reflog
es una herramienta útil que permite ver un registro de todas las referencias y cambios realizados en tu repositorio, incluso aquellos que han sido eliminados.
Descripción
Función: Muestra todos los cambios hechos hasta ahora, incluyendo las actualizaciones de ramas y los cambios eliminados, enumerados por referencia.
Uso:
git reflog
Ejemplo de salida
Al ejecutar git reflog
, obtendrás una salida que muestra una lista de acciones recientes en tu repositorio:
1d2a3b4 HEAD@{0}: commit: Mensaje del commit
5c6d7e8 HEAD@{1}: reset: moving to HEAD^
9f0a1b2 HEAD@{2}: checkout: moving from branch to branch
Esto te permitirá regresar a un estado anterior de tu proyecto si es necesario, utilizando la referencia mostrada.
Consideraciones Finales
- Precaución con --hard: Ten cuidado al usar
git reset --hard
, ya que puede llevar a la pérdida de trabajo no guardado. - Uso de reflog: Es recomendable revisar el reflog si necesitas deshacer cambios o recuperar un estado anterior del repositorio.
Con esta guía, deberías tener una comprensión clara de cómo usar git reset
y git reflog
de manera efectiva en tus proyectos.