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
Aquí está su hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
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.
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.
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
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.
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.
A continuación, cerrar correctamente el editor de texto y mostrar los cambios realizados en el último commit:
git show HEAD
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
El archivo recipe.txt ha sido eliminado correctamente.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla