Repaso
English
Maven, Git y SDLCIntermedioVCS-13

¿Cuál es la diferencia entre git reset y git revert para deshacer un commit?

Opciones

  1. Tienen el mismo efecto sobre el historial
  2. reset reescribe el historial; revert añade un commit que deshace (Opción correcta)
  3. revert elimina todo el repositorio del disco
  4. reset solo funciona en ramas remotas, nunca locales

Respuesta

reset mueve la rama hacia atrás y reescribe el historial (arriesgado si ya hiciste push); revert crea un commit NUEVO que deshace el antiguo, seguro en ramas compartidas

Por qué

git reset --hard <commit> mueve hacia atrás el puntero de tu rama y descarta commits y cambios posteriores. Bien para trabajo local, pero si otros ya tienen esos commits, creas un lío (reescribe el historial).

git revert <commit> añade un commit nuevo con los cambios opuestos. El historial queda intacto, así que es la forma segura de deshacer algo ya subido a una rama compartida como main.

git revert 3f2a9c1        # safe on shared branches
git reset --hard HEAD~1   # local only: drops last commit and changes

Recuerda

Rama compartida: revert. Lío local: reset.

Términos clave

Practica esta pregunta en Repaso