- ¿Por qué es importante saber revertir cambios?
- git revert: Deshacer cambios de manera segura
- git reset: Eliminar commits
🦸 Git al rescate: Todos cometemos errores, pero con Git, corregirlos es fácil y seguro.
En esta lección, aprenderás a deshacer o revertir cambios con dos comandos clave: git revert y git reset. Veremos cuándo usarlos y cómo aplicarlos correctamente. ¡Manos a la obra!
¿Por qué es importante saber revertir cambios?
Incluso los desarrolladores más experimentados cometen errores al trabajar con Git. Algunos de los casos más comunes incluyen:
- Olvidar agregar archivos necesarios en un commit.
- Necesitar hacer ajustes sobre cambios ya registrados.
- Eliminar cambios que ya no son relevantes.
- Deshacer cambios realizados por error.
Lo más importante es que Git es un sistema que casi siempre nos permite recuperar nuestro trabajo, así que no hay que preocuparse demasiado si algo sale mal.
En la mayoría de los casos, lo mejor es solucionar un problema con un nuevo commit, en lugar de modificar el historial.
git revert: Deshacer cambios de manera segura
git revert. Este comando no elimina el commit original, sino que crea un nuevo commit que revierte los cambios del commit equivocado.
Podemos imaginarlo de la siguiente manera: si un commit eliminó un archivo, git revert creará otro commit que lo restaure.
Supongamos que eliminamos un archivo llamado PEOPLE.md en un commit anterior. Podemos revertirlo con el siguiente comando:
# Revertir un commit específico usando su ID
git revert aa600a43cb164408e4ad87d216bc679d097f1a6c
Cuando ejecutamos este comando, Git abrirá un editor para escribir el mensaje del commit de reversión. Si no queremos cambiarlo, simplemente cerramos el editor y Git aplicará el cambio.
Después de esto, si revisamos el historial con git log, veremos que hay un nuevo commit que revierte el commit erróneo.
Ventajas de git revert
✅ No elimina la historia del proyecto.
✅ Es seguro de usar, incluso cuando el código ya ha sido enviado a un repositorio remoto.
✅ Podemos revertir cualquier commit, no solo el más reciente.
git reset: Eliminar commits
git reset es un comando más agresivo que puede eliminar commits del historial de Git. Se debe usar con precaución porque puede hacer que los cambios desaparezcan completamente si no se usa correctamente.
Este comando es útil cuando queremos eliminar el último commit porque nos equivocamos y aún no lo hemos subido a GitHub.
Imagina que hicimos un commit con un cambio innecesario en el archivo INFO.md y queremos eliminarlo.
# Crear un commit que luego eliminaremos
echo 'test' >> INFO.md
git add INFO.md
git commit -m 'update INFO.md'
# Eliminar el último commit
git reset --hard HEAD~
Aquí, HEAD~ indica que queremos retroceder un commit. Si quisiéramos eliminar varios commits, podríamos escribir HEAD~2, HEAD~3, etc.
Opciones de git reset
| Opción | Descripción |
|---|---|
--soft |
Elimina el commit pero mantiene los cambios en el área de preparación (staging area). |
--mixed |
Elimina el commit y los saca del área de preparación, pero los cambios quedan en el directorio de trabajo. |
--hard |
Elimina el commit y todos los cambios asociados. Es irreversible. |
¿Cuándo usar git reset?
- Cuando el commit aún no ha sido enviado a un repositorio remoto.
- Cuando queremos hacer como si el commit nunca hubiera ocurrido.
git reset --hard, perderemos los cambios definitivamente. Úsalo solo si estás seguro.
Resumen
git revert: Crea un nuevo commit que revierte un commit anterior. Es seguro y mantiene el historial del proyecto intacto.git reset: Elimina commits del historial. Puede ser peligroso y solo se debe usar si el commit aún no ha sido enviado a un repositorio remoto.- Git trabaja hacia adelante; es mejor corregir errores con nuevos commits en lugar de modificar la historia existente.
- Si aún no has subido los cambios,
git resetes una opción viable; si los cambios ya se subieron,git revertes preferible.
Con estos comandos, podrás manejar errores sin temor cuando trabajes con Git. Experimenta con ellos en un proyecto de prueba y familiarízate con su funcionamiento. ¡Buena práctica!
Trabajo independiente
Edita un archivo y sube los cambios a GitHub
1️⃣ Cambia el texto de algún archivo por:
No code No pain
2️⃣ Guarda el archivo y haz un commit:
git commit -am "update README.md" git push
🚀 ¡Listo! Los cambios ya están en GitHub.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.