Git Quitar confirmación del historial

Abdul Jabbar 20 junio 2023
  1. Eliminar cambios localmente en Git
  2. Eliminar cambios a la fuerza en Git
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 Jabbar avatar Abdul Jabbar avatar

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

Artículo relacionado - Git Remove