Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Revertir un Commit Específico | Deshacer Cambios
Conceptos Esenciales de Git

Revertir un Commit Específico

Desliza para mostrar el menú

git revert

Para revertir un commit específico, utiliza el comando git revert. Este comando crea un nuevo commit que revierte los cambios introducidos por el commit especificado. Sintaxis básica:

git revert <commit-hash>

En lugar de usar HEAD (que apunta al último commit), especifica el hash del commit (ID del commit) que deseas revertir, reemplazando <commit-hash> por el valor real del hash.

Más sobre los hashes

Cada commit tiene un ID único: una cadena hexadecimal de 40 caracteres compuesta por dígitos (0–9) y letras (a–f). Este identificador se llama hash. Ahora, visualiza el último commit:

git log -n 1
El último commit

Aquí está su hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Nota

Tendrás un hash diferente para este commit por la razón explicada a continuación.

El hash del commit se calcula utilizando el algoritmo SHA-1 en base a la siguiente información:

  • Mensaje del commit;
  • Fecha;
  • Autor;
  • Instantánea del árbol de trabajo;
  • Hash del commit padre (o commits cuando hay más de un padre).

Si el commit es el primero en el repositorio, entonces el hash del commit padre aparentemente no se calcula.

Calculando hash

Dado que toda esta información del commit se utiliza para calcular su hash, usar hashes como identificadores de commit garantiza la consistencia del repositorio. Además, la probabilidad de que dos commits diferentes tengan el mismo hash (la probabilidad de colisión) es extremadamente baja, por lo que es muy poco probable que ocurra por casualidad.

Básicamente, si algo cambia en el commit, su hash también cambiará. Esto significa que, en caso de que los datos se corrumpan por cualquier motivo, Git puede utilizar el hash para identificarlo.

Note
Nota

Al modificar un commit, el identificador del commit cambia, por lo que es mejor no utilizar el comando git commit --amend cuando se trabaja con repositorios remotos.

Ejemplo de flujo de trabajo

Antes de decidir qué commit revertir, visualizar los cuatro commits más recientes:

git log -n 4
Cuatro commits más recientes

Existe un commit donde se añadió el archivo recipe.txt. Revertir este commit para crear uno nuevo que deshaga esos cambios y elimine efectivamente el archivo. En este ejemplo, el hash del commit es:

043b634d76a7a7744757350512b6367417c29e0

El hash de tu commit será diferente. Ahora revierte este commit:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Reemplaza este hash con tu hash.

Revertir en Git

Una vez más, el editor de texto predeterminado se abre con el mensaje de confirmación predeterminado para el revertir. Deja el mensaje sin cambios.

Mensaje de reversión de commit predeterminado

A continuación, cerrar correctamente el editor de texto y mostrar los cambios realizados en el último commit:

git show HEAD
El último commit

Se produjeron 7 eliminaciones, lo que significa que se eliminaron las siete líneas del archivo. Ahora verifica que el archivo haya sido eliminado listando todos los archivos y directorios no ocultos en el directorio del proyecto:

ls -l
Listado de archivos y directorios

El archivo recipe.txt ha sido eliminado correctamente.

question-icon

Relaciona las acciones con los comandos respectivos.


Revert the latest commit:

Revert a specific commit:

Unstage changes:

Revert unstaged changes:

Unstage changes and then revert the changes in the working directory:

Overwrite the existing commit:

Haz clic o arrastra y suelta elementos y completa los espacios

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 5
some-alt