Revertir el repositorio de Git a una confirmación anterior
- Eliminar confirmaciones no publicadas para revertir el repositorio de Git a una confirmación anterior
- Eliminar confirmaciones publicadas para 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.
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 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 Push
- Cabezal de origen Git Push
- Confirmar y enviar un solo archivo al control remoto
- Diferencia entre Git Push Origin y Git Push Origin Master
- Enviar una confirmación específica a un repositorio remoto
- Force Git Push para sobrescribir archivos en el repositorio remoto
- git add, git commit y git push en One Command