¿Cuál es la diferencia entre git reset y git revert para deshacer un commit?
Opciones
- Tienen el mismo efecto sobre el historial
resetreescribe el historial;revertañade un commit que deshace (Opción correcta)revertelimina todo el repositorio del discoresetsolo 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 changesRecuerda
Rama compartida: revert. Lío local: reset.