Retroceder a una confirmación anterior en un repositorio público de Git
Este artículo ilustra cómo podemos revertir un repositorio Git público a una confirmación anterior. Podemos volver a cualquier punto deseado mientras trabajamos con el control de versiones de Git.
Sin más preámbulos, saltemos a la agenda de hoy.
Retroceder a una confirmación anterior en un repositorio público de Git
Como siempre, emplearemos un ejemplo para explicar este concepto.
Tenemos un repositorio de Git con el historial de confirmaciones que se muestra a continuación.
En este punto de nuestro repositorio, HEAD
se encuentra en la confirmación e65841a
. También podemos referirnos a esto como HEAD@{0}
.
Si queremos retroceder tres confirmaciones, de modo que HEAD
esté en la confirmación 7c5a7db
, es decir, HEAD@{3}
, ¿cómo lo haríamos?
Podríamos ejecutar el comando git reset
, pero este es un repositorio público. No es aconsejable utilizar el comando git reset
en un repositorio público.
Puede terminar jugando con la línea de tiempo de su proyecto. Recuerda que el comando git reset
eliminará los commits al especificado en la línea de comando.
Una forma más segura y limpia de hacer esto implica el comando git checkout
. Aquí hay una sintaxis simple para el comando.
$ git checkout <SHA-1>
En nuestro caso ejecutaremos:
$ git checkout 7c5a7db .
Toma nota del .
al final del comando. Le indicamos a Git que aplique los cambios a todo el árbol de trabajo.
Ejecute siempre este comando en la raíz de su proyecto; de lo contrario, solo tendrá efecto en el subdirectorio en el que esté registrado.
Esto no eliminará las confirmaciones posteriores a la especificada; en su lugar, actualiza todos los archivos afectados en el árbol de trabajo.
Podemos jugar con el código y confirmar los cambios. Después de confirmar los cambios, revisemos nuestro historial de confirmación para verificar nuestro caso.
Ahí tienes. Nuestros compromisos aún están intactos, pero hay un nuevo compromiso, Rollback
.
Después de la confirmación, los archivos afectados deberían ser idénticos a los de HEAD@{4}
.
En pocas palabras, los repositorios públicos requieren mucho cuidado al retroceder a confirmaciones específicas. Absténgase de usar el comando git reset --hard
y en su lugar use el comando git checkout
.
Es mucho más seguro y limpio.
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