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í.

Otras fichas en Inspeccionar y deshacer