Git revert = anular UN commit creando un commit NUEVO inverso.
Concepto clave:
Analogía: es como decir en público "ups, retiro lo que dije".
| Aspecto | git revert | git reset |
|---|---|---|
| Historial | Conservado | Modificado/eliminado |
| Seguridad | Seguro en equipo | Peligroso si está compartido |
| Método | Commit nuevo inverso | Retrocede en el tiempo |
| Trazabilidad | Se ve que se ha anulado | Como si nunca hubiera existido |
Regla simple:
revertresetmkdir demo-revert && cd demo-revert
git init
echo "print('Version 1')" > app.py
git add . && git commit -m "Version 1"
echo "print('Version 2 - Bug!')" > app.py
git add . && git commit -m "Version 2 avec bug"
echo "print('Version 3')" > app.py
git add . && git commit -m "Version 3"
# ¡Ups! La versión 2 tenía un bug
git log --oneline # Ver el historial
git revert <hash-version-2> # Anular SOLO la versión 2
# Resultado: la versión 3 se queda, pero el bug de v2 queda anulado
cat app.py # Comprobar el contenidoSituaciones típicas:
Bug en producción:
git revert <commit-buggy> # Anulación limpia
git push origin main # Arreglo inmediatoLa feature da problemas:
git revert <commit-feature> # Retirar la feature
# Conservar el historial para más adelanteAnular varios commits:
git revert <commit1> <commit2> <commit3>
# O de una sola vez:
git revert <oldest-commit>..<newest-commit>Revert = tu red de seguridad cuando todo va mal.