Control de versiones · Inspeccionar y deshacer
git reset
|
Reset current HEAD to the specified state
Mueve el puntero de la rama a otro commit. Los tres modos se distinguen por hasta dónde arrastran ese movimiento: solo el puntero, también el índice, o también tus archivos.
Sintaxis Estándar
git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1
Parámetros Soportados
| Flag | Nombre Largo | Descripción |
|---|---|---|
| --soft | — | Solo el puntero. El índice y tus archivos quedan como estaban, con todo lo del commit ya preparado. |
| --mixed | (por omisión) | Puntero e índice. Tus archivos no se tocan: los cambios siguen ahí, sin preparar. |
| --hard | — | Puntero, índice y archivos. Lo que no estaba commiteado, se pierde. |
Caso Práctico
Rehacer el último commit porque el mensaje estaba mal, conservando los cambios listos:
git reset --soft HEAD~1
git commit -m "El mensaje que correspondía"
El error que comete todo el mundo
reset reescribe el historial de tu rama. Si esos commits ya están publicados, quien los tenga bajados se va a encontrar con una divergencia; ahí lo que corresponde es git revert.
Laboratorio Interactivo
Asistente de Laboratorio SudoQuest
Esperando comandos... Escribe una instrucción en la terminal interactiva para desglosar su comportamiento aquí.