Revertir un repositorio de Git por ID del commit

John Wachira 15 febrero 2024
  1. Cambiar a un Git Commit temporalmente
  2. Revertir un Git Repo por Commit ID
Revertir un repositorio de Git por ID del commit

Este artículo discutirá la reversión de un repositorio de Git basado en la identificación del commit. Es posible que tengamos que volver a un commit anterior para examinar su estado o eliminar las commits posteriores.

Hablemos de ambos escenarios.

Cambiar a un Git Commit temporalmente

Usamos el comando git checkout para cambiar temporalmente a un commit más antigua mientras mencionamos la identificación de el commit.

$ git checkout <Commit ID>

Este comando separará el HEAD de nuestro repositorio (no estamos desprotegidos en una rama). En este estado, no podemos hacer commits.

Como se muestra a continuación, debemos crear una nueva rama basada en el commit.

$ git switch -c <new-branch-name>

Podemos combinar el comando anterior para hacer lo mismo que se muestra a continuación.

$ git checkout -b <new-branch-name> <Commit ID>

Revertir un Git Repo por Commit ID

Usamos el comando git reset con el indicador --hard mientras pasamos la identificación del commit a la que queremos retroceder. Ejecute el siguiente comando.

$ git reset --hard <Commit ID>

Ejecutar este comando eliminará todas nuestras commits recientes hasta el commit mencionada. El comando también eliminará cualquier cambio no confirmado en su índice.

Si desea conservar los cambios, haga lo siguiente:

$ git stash
$ git reset --hard <Commit ID>
$ git stash pop

Si desea actualizar el repositorio remoto, use el comando git push a continuación.

$ git push -f

Tenga cuidado con este comando, ya que anulará el repositorio remoto en función de su repositorio local. Veamos un ejemplo.

En el siguiente ejemplo, intentaremos revertir nuestro repositorio git Delftscopetech en función de una identificación del commit. Ejecutemos el comando git log para enumerar todas las commits en nuestro repositorio.

$ git log --oneline

historial de repositorios

¿Cómo lo haríamos si quisiéramos volver a la Fourth Update?

Ejecutamos el comando git reset en el contexto a continuación.

$ git reset --hard df90895
HEAD is now at df90895 Fourth Update

El resultado muestra que nuestro HEAD está ahora en la Cuarta Actualización. Podemos ejecutar el comando git push para enviar los cambios a nuestro repositorio remoto.

Si desea deshacer el reinicio, siga esto.

Primero, ejecutamos el comando git reflog para ver todas las actualizaciones de referencia en nuestro repositorio.

$ git reflog

git reflog

Su salida se verá similar. Podemos ver nuestro reinicio en HEAD@{0}.

Para volver, ejecutamos el comando git reset como se muestra a continuación.

$ git reset HEAD@{1}

Revisemos nuestro historial de commits ahora.

$ git log --oneline

historial de repositorios 2

Nuestro HEAD está de vuelta en Sixth Update.

En pocas palabras, es muy fácil revertir su repositorio de Git en función de la identificación del commit. Si desea cambiar temporalmente a un commit, use el comando git checkout.

Para volver a un commit específica, use el comando git reset --hard e indique el hash de el commit.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Reset