Menu
Coddy logo textTech

Restablecer una rama

Parte de la sección Control de versiones del Journey de Terminal de Coddy — lección 44 de 58.

git reset mueve el puntero de la rama actual a un commit diferente. El uso más común es deshacer commits recientes que aún no has compartido.

git reset --hard HEAD~1

Esto mueve main un commit hacia atrás y sobrescribe el directorio de trabajo para que coincida. El commit que saltaste ya no es accesible desde tu rama (Git lo conserva durante un tiempo por si cambias de opinión, pero cuenta con que desaparecerá).

Existen tres variantes de reset:

  • --soft: mueve el puntero de la rama; mantiene los cambios preparados (staged)
  • --mixed (predeterminado): mueve el puntero; quita los cambios del área de preparación pero mantiene los archivos de trabajo
  • --hard: mueve el puntero; descarta también los cambios en los archivos de trabajo

--hard es la forma más destructiva. Es ideal para corregir errores locales, pero nunca lo uses en commits que otras personas ya hayan descargado.

challenge icon

Desafío

Intermedio

La carpeta contiene doc.md. Inicializa el repositorio y crea tres commits en orden:

  1. Añade doc.md con el mensaje Add doc.
  2. Añade second a doc.md, haz un commit con el mensaje Second draft.
  3. Añade third a doc.md, haz un commit con el mensaje Third draft.

Realiza un hard-reset de la rama al primer commit usando HEAD~2. Imprime el contenido de doc.md.

Hoja de referencia

git reset mueve el puntero de la rama actual a un commit diferente. Tres variantes:

  • --soft: mueve el puntero; mantiene los cambios preparados (staged)
  • --mixed (por defecto): mueve el puntero; quita los cambios del área de preparación (unstage) pero mantiene los archivos de trabajo
  • --hard: mueve el puntero; descarta los cambios en los archivos de trabajo
git reset --hard HEAD~1  # deshacer el último commit, descartar cambios
git reset --hard HEAD~2  # deshacer los últimos 2 commits

Advertencia: Nunca uses --hard en commits que otros ya hayan descargado (pulled).

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Control de versiones