Menu
Coddy logo textTech

Git Revert

Última actualización

git revert deshace un commit creando un nuevo commit que aplica la inversa de sus cambios. Como añade historial en lugar de reescribirlo, revert es la forma segura de deshacer un commit que ya se ha subido: a diferencia de git reset, no obliga a todos los demás a reconciliar una rama reescrita.

Prueba estos comandos en el terminal playground: una shell real en tu navegador, sin nada que instalar.

git revert deja el commit erróneo donde está y añade un commit nuevo que aplica su inverso - el historial nunca se reescribe.

Sintaxis

CommandWhat it does
git revert HEADRevierte el commit más reciente
git revert <hash>Revierte un commit concreto por su hash
git revert HEAD~2..HEADRevierte un rango de commits
git revert -n <hash>Revierte pero aún no hace el commit (solo prepara los cambios)
git revert -m 1 <merge-hash>Revierte un commit de merge, conservando el padre 1

Durante un revert

Si el revert encuentra un conflicto, resuélvelo y continúa.

CommandWhat it does
git revert --continueReanuda tras resolver los conflictos
git revert --abortCancela el revert en curso
git revert --skipOmite el commit actual y continúa

revert vs reset

Behaviorgit revertgit reset
Reescribe el historialNo
Seguro en commits ya subidosNo
Crea un nuevo commitNo
Deshace un commit intermedioComplicado

Preguntas frecuentes sobre git revert

¿Cuál es la diferencia entre git revert y git reset?
git revert añade un nuevo commit que deshace los cambios de uno anterior, dejando el historial intacto: seguro para commits que ya has subido. git reset mueve el puntero de tu rama hacia atrás y reescribe el historial, lo cual está bien para commits locales pero es peligroso en ramas compartidas. Usa revert para deshacer commits públicos y reset para deshacer los locales.
¿Cómo revierto un commit que ya se había subido?
Ejecuta git revert <hash> (o git revert HEAD para el más reciente) y luego sube el nuevo commit de revert. Como revert no reescribe el historial, esta es la forma correcta de deshacer un commit compartido: sin force-push ni interrupciones para los compañeros que ya lo habían descargado.
¿Cómo revierto un commit de merge?
Un commit de merge tiene dos padres, así que Git necesita saber qué línea del historial conservar. Usa git revert -m 1 <merge-hash>, donde -m 1 le indica a Git que conserve el primer padre (normalmente la rama sobre la que hiciste el merge). Revertir un merge deshace los cambios fusionados pero mantiene el merge en el historial.
¿Puedo revertir varios commits a la vez?
Sí. Pasa un rango como git revert HEAD~2..HEAD para revertir los dos últimos commits, o enumera varios hashes. Git crea un commit de revert por cada commit revertido de forma predeterminada; añade -n para preparar todas las reversiones sin hacer commit y luego crea un único commit tú mismo.
¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar git revert en una shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre cómo deshacer cambios paso a paso.
Coddy programming languages illustration

Aprende Git con Coddy

COMENZAR