Volver a un commit anterior en el repositorio en Git

Azhar Bashir Khan 6 febrero 2022
  1. Uso de git reset para restablecer un commit anterior en el repositorio de Git
  2. Uso de git revert para volver a un commit anterior en el repositorio de Git
Volver a un commit anterior en el repositorio en Git

En este tutorial, aprenderemos cómo volver a un commit anterior en el repositorio de Git.

Git, un sistema de control de versiones, se utiliza en un entorno de desarrollo colaborativo para realizar un seguimiento de los cambios realizados en los archivos.

Git se usa para capturar instantáneas de los cambios de los archivos en un directorio de proyecto y los asocia con commits.

En Git, al usar commits, uno puede navegar y ver el historial de cambios realizados en los archivos.

También podemos usar Git para restablecer o revertir los archivos del directorio del proyecto en el repositorio de Git a un commit anterior (es decir, el estado de los archivos en el directorio, cuando se creó el commit).

Ahora ilustraremos esto con un ejemplo.

Uso de git reset para restablecer un commit anterior en el repositorio de Git

En un entorno de desarrollo colaborativo, usamos Git para realizar un seguimiento de los cambios realizados en los archivos en el directorio del proyecto en un repositorio de Git.

Cuando creamos un commit para guardar nuestro trabajo, Git crea una ID única (también conocida como SHA o hash) que nos permite mantener un registro de los cambios específicos confirmados junto con quién los realizó y cuándo.

un commit es un cambio individual en un archivo (o conjunto de archivos). los commits generalmente contienen un mensaje de commit que es una breve descripción de los cambios que se realizaron.

A veces, es posible que necesitemos revertir o restablecer el repositorio del directorio del proyecto a un commit anterior.

Supongamos que tenemos las siguientes commits como se muestra en el comando git log en nuestro repositorio.

$ git log --oneline
e4cd6b4 (HEAD -> main, origin/main) my change
99541ed second change
41f1f2a first change
...

Ahora, digamos que queremos restablecer nuestro repositorio al commit anterior proporcionada por SHA 41f1f2a con el comentario first change.

Una forma de hacerlo es cambiar temporalmente al commit anterior usando el comando git checkout.

Por lo tanto, haríamos lo siguiente.

$ git checkout 41f1f2a

También podemos crear una nueva rama con el commit anterior, para que podamos confirmar los nuevos cambios en esa rama.

Por lo tanto, haríamos lo siguiente.

$ git checkout -b first-change-branch 41f1f2a

En cambio, si queremos descartar los cambios del commit anterior, usaríamos el comando git reset.

La sintaxis del comando git reset para restablecer el repositorio a un commit anterior es git reset -hard <commit-sha-id>.

Así, en nuestro caso, haríamos lo siguiente.

$ git reset --hard 41f1f2a

Tenga en cuenta que debe usar esto con precaución; esto también descartará cualquier modificación local. Cualquier cambio no confirmado se perderá.

Alternativamente, podemos ocultar los cambios antes de hacer el reinicio, de la siguiente manera.

$ git stash
$ git reset --hard 41f1f2a
$ git stash pop

Después de ejecutar los comandos anteriores, las modificaciones locales se guardan en el alijo; y luego, después de restablecer el commit anterior, esas modificaciones se vuelven a aplicar al repositorio.

Uso de git revert para volver a un commit anterior en el repositorio de Git

El comando git revert se usa cuando queremos mantener el historial del repositorio.

Al ejecutar el comando git revert, Git crea un commit con el parche inverso para anular el commit anterior. De esta manera, no reescribimos ninguna historia.

La sintaxis del comando git revert para revertir el repositorio a un commit anterior es git reset <commit-sha-id1> <commit-sha-id2> ....

Por lo tanto, queremos revertir los dos primeros compromisos para revertir el repositorio al compromiso dado por SHA 41f1f2a.

$ git revert e4cd6b4 99541ed

Revertirá el repositorio por los dos compromisos dados.

También podemos ejecutar el comando git revert de la siguiente manera.

$ git revert HEAD~2..HEAD

El comando git revert anterior revertiría las dos últimas commits.

Finalmente, como se mencionó anteriormente, el comando git revert crea un commit para cancelar el compromiso anterior. Por lo tanto, ahora necesitaríamos guardar este compromiso.

Tenemos que hacer lo siguiente.

$ git commit -m "reverted commits e4cd6b4 99541ed"

Por lo tanto, ahora la reversión de los commits ahora se guarda en el repositorio como un nuevo commit.

En algunos casos, hay un commit de fusión presente y es posible que también queramos revertirla.

Podemos usar el comando git revert con la opción -m parent-number; esta opción especifica el número de padre (a partir de 1) de la línea principal y permite revertir el cambio relativo al padre especificado.

el commit de fusión tiene varios padres. El comando git revert necesita información adicional para decidir qué padre de la fusión se considerará como la línea principal.

La sintaxis del comando es, git revert -m 1 <commit-sha-id>, el 1 se usa para el primer padre como línea principal.

Por lo tanto, supongamos que el commit SHA e4cd6b4 es un commit de fusión. Entonces podemos hacer lo siguiente.

$ git revert -m 1 e4cd6b4

Por lo tanto, hemos explicado cómo volver a un commit anterior en el repositorio de Git.

Para mayor información por favor visite -

  1. git-reset
  2. git-revert

Artículo relacionado - Git Reset

Artículo relacionado - Git Revert