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~1Esto 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.
Desafío
IntermedioLa carpeta contiene doc.md. Inicializa el repositorio y crea tres commits en orden:
- Añade
doc.mdcon el mensajeAdd doc. - Añade
secondadoc.md, haz un commit con el mensajeSecond draft. - Añade
thirdadoc.md, haz un commit con el mensajeThird 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 commitsAdvertencia: Nunca uses --hard en commits que otros ya hayan descargado (pulled).
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Control de versiones
2Primeros pasos
Inicializar un repositorioLa carpeta .gitConfigurar tu identidadGit StatusResumen: Primer repositorio5Ignorar archivos
¿Por qué ignorar archivos?Patrones de .gitignoreComprobar reglas de ignoradoResumen - Repo limpio3Seguimiento de cambios
El área de preparaciónGit AddGit CommitModificar un archivo bajo seguimientoGit LogResumen - Primeros commits6Proyecto de Sitio de Recetas
Descripción General del ProyectoInicializar e Ignorar9Deshacer cambios
Descartar cambios sin prepararQuitar un archivo del área de preparaciónEnmendar el último commitRevertir un commitRestablecer una ramaResumen - Máquina del tiempo