Revertir el repositorio de Git a una confirmación anterior

John Wachira 15 febrero 2024
  1. Eliminar confirmaciones no publicadas para revertir el repositorio de Git a una confirmación anterior
  2. Eliminar confirmaciones publicadas para revertir el repositorio de Git a una confirmación anterior
Revertir el repositorio de Git a una confirmación anterior

Este artículo discutirá las diversas formas en que puede revertir un repositorio de git a una confirmación anterior. Puedes deshacer casi todo con Git.

Analizaremos tanto el repositorio local como el remoto y cómo puede deshacer confirmaciones no publicadas y publicadas.

Eliminar confirmaciones no publicadas para revertir el repositorio de Git a una confirmación anterior

Las confirmaciones no publicadas son simplemente las confirmaciones en su repositorio local que aún no se enviaron al repositorio remoto. Usaremos un ejemplo para explicar este concepto.

Ejemplo 1:

A continuación se muestra el historial de confirmaciones en nuestro repositorio local. Tenga en cuenta la combinación dada a cada mensaje de confirmación.

Historial de confirmaciones

Si por alguna razón, encontramos que la confirmación más reciente tiene errores, podemos eliminar la confirmación y revertir el repositorio a su estado anterior.

En nuestro caso, la confirmación incorrecta debería ser ba4c699 (Actualizar nombre). Ejecutamos el comando git rest --hard <sha1-commit-hash> para eliminar este compromiso.

git reset --hard 00e1a53

Producción :

HEAD is now at 00e1a53 Merge branch 'main' of https://github.com/Wachira11ke/Delftscopetech

El comando anterior devuelve su repositorio a la confirmación especificada y elimina las confirmaciones posteriores. El comando también eliminará todos los cambios no confirmados en su repositorio.

Si desea conservarlos y aplicarlos después de eliminarlos, ejecute los siguientes comandos.

git stash
git reset --hard 00e1a53
git stash pop

Esta combinación guarda los cambios no confirmados y los aplica al nuevo espacio de trabajo. Puede encontrar errores de combinación si ha realizado modificaciones en los archivos.

Eliminar confirmaciones publicadas para revertir el repositorio de Git a una confirmación anterior

Las confirmaciones publicadas son los cambios aplicados al repositorio remoto. Si enviamos cambios incorrectos desde nuestro repositorio local al repositorio remoto, podríamos revertir el repositorio a su versión anterior.

Vale la pena alertar a otros desarrolladores para que no obtengan del repositorio. Veamos un ejemplo.

Ejemplo 2:

Anteriormente hemos discutido cómo eliminar confirmaciones en nuestro repositorio local. Supongamos que ya habíamos enviado la confirmación que eliminamos al repositorio remoto.

En el siguiente contexto, podemos revertir el repositorio remoto con el comando git push.

git push --force origin HEAD

El comando anterior sobrescribirá nuestro repositorio remoto según el estado de nuestro repositorio local. Descartará cualquier cambio realizado por otros desarrolladores.

Aquí hay una opción más segura:

git push --force-with-lease oriin HEAD

Puede especificar una rama usando el siguiente comando:

git push -f origin <sha1-commit-hash>:branch_name

Algunos repositorios remotos tienen un ajuste preestablecido receive.denyNonFastForwards que rechaza el comando anterior. Tendremos que eliminar y volver a crear la rama en tal caso.

git push origin : <branch name>
git push origin <sha1-commit-hash>:ref/heads/<branch name>
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 Push