Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git revert [-n] [-m <parent>] <commit>...

Descripción

El comando git revert crea un nuevo commit que deshace los cambios introducidos por un commit anterior. A diferencia de reset, no reescribe el historial, lo que lo hace seguro de usar en branches compartidos. El resultado es un commit limpio que puede ser pusheado y revisado normalmente.

Hacer revert de un merge commit requiere especificar qué padre tratar como mainline con -m 1. Hacer revert de un revert es la forma común de rehacer un cambio.

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
-n, --no-commitStage the inverse changes without committing.
-m <parent-number>Mainline parent for reverting a merge.
--continueResume after resolving conflicts.
--abortCancel an in-progress revert.
--skipSkip the current commit and move on.
-e, --editEdit the revert commit message.

Ejemplos

git revert HEAD
# Undo the most recent commit with a new commit

git revert abc123..def456
# Revert a range of commits

git revert -m 1 merge-sha
# Revert a merge commit, keeping mainline

git revert -n HEAD~2
# Stage an inverse without committing yet

Errores comunes

Reverting a merge prevents future re-merging of the same branch unless you also revert the revert. Plan accordingly when reverting feature merges. Conflicts during revert require --continue or --abort, just like rebase.

Comandos relacionados

git reset, git restore, git cherry-pick, git log