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
¿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
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
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 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.
LinkedInArtículo relacionado - Git Reset
- Diferencia entre Git RM --Cached y Git Reset File
- Diferencia entre los comandos Git Reset, Revert y Checkout
- Haga que la rama de desarrollo sea idéntica a la rama principal
- Revertir una combinación de Git con conflictos
- Varios métodos utilizados para eliminar los cambios locales de Git
- Deshacer cambios en Git