Git Quitar confirmación del historial
En Git, agregar cosas confidenciales a un repositorio no es una buena idea, ya que arruinará todos nuestros secretos y los expondrá al mundo entero, lo cual no queremos. Pero a veces, intencionalmente o no, agregamos cosas que no deberíamos tener.
Ahora debemos resolver el asunto y eliminar la información confidencial de nuestro repositorio usando los comandos de Git. No es fácil eliminarlo del historial de Git porque Git tiene antecedentes más importantes para mantener el historial del repositorio en varios formatos.
Para este propósito, debemos ser mucho más cuidadosos en la limpieza profunda de este error y eliminar las cosas adicionales de la rama de ese repositorio.
Git tiene una amplia gama de herramientas para deshacer confirmaciones, según la condición y el tamaño de la confirmación. La eliminación se puede lograr de dos maneras diferentes, dependiendo de nuestro error y de si hemos enviado los cambios al repositorio remoto o no.
En este tutorial, aprenderemos sobre dos métodos diferentes para eliminar confirmaciones de forma local y forzada mediante comandos de Git.
Eliminar cambios localmente en Git
Eliminar últimas confirmaciones
Podemos eliminar las últimas confirmaciones con la ayuda del comando git reset
. Este comando es bien conocido por deshacer cambios.
Sin embargo, podemos eliminar el más reciente a través del siguiente comando de Git.
git reset --hard HEAD~1
HEAD~1
especifica una confirmación antes de HEAD
. Usaremos el indicador HEAD~N
para eliminar la confirmación especificada con el comando git reset
.
git reset --hard HEAD~N
Otro método podría lograr esto mencionando el ID de hash de confirmación exacto. El siguiente comando es la forma de hacerlo.
git reset --hard <sha1-commit-hash>
Deshacer la confirmación intermedia
Con la ayuda del comando git revert
, podemos insertar una nueva confirmación que deshará los cambios realizados por la confirmación central específica. Se logra a través del siguiente comando de Git.
git revert <sha1-commit-hash>
Aquí, el punto principal es que git revert
no elimina la confirmación intermedia específica. Para eliminarlo por completo del historial, tenemos que ejecutar git rebase
junto con el argumento interactivo con él, que es el siguiente:
git rebase -i <sha1-commit-hash>
Recuperar confirmación eliminada
Después de eliminar el compromiso, podemos recuperarlo usando el siguiente comando si lo queremos de nuevo.
git reflog
Eliminar cambios a la fuerza en Git
Si nuestros compañeros de equipo o nosotros ya enviamos los cambios al repositorio remoto, entonces Git tiene una forma sencilla de controlar esta situación ejecutando el comando git push
junto con la bandera --force
.
Esto eliminará la confirmación del repositorio remoto predeterminado que es el origen
y estará disponible en la rama para uso futuro.
git push origin HEAD --force
Nota:
Este método no es seguro y es muy crítico en términos de uso; puede estropear los repositorios locales de nuestros compañeros de trabajo. Si alguien de nuestro equipo extrae esta rama, se fusionará con su trabajo y la empujaremos nuevamente.
Por lo tanto, es mejor y más conveniente comenzar con una nueva rama en el mismo repositorio.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn