¿Has encontrado algún error o enfrentado problemas con los commits de Git mientras trabajabas con él? Tal vez se haya guardado accidentalmente algún secreto o datos sensibles. Afortunadamente, puedes procesar tus archivos con Git y quitarlos del commit para corregir el historial.
Si has realizado varios commits o clonado un repositorio con un historial de commits ya existente, probablemente quieras retroceder y ver todos los commits realizados. Y en este tutorial, aprenderás cómo quitar una entrada de tu historial de Git.
Sigue leyendo y salva el día con Git!
**Prerrequisitos**
Este tutorial consta de instrucciones paso a paso. Si quieres seguirlo, asegúrate de tener lo siguiente en su lugar:
- A local machine to test the Git commands – This tutorial uses Windows 10, but later versions will also work.
- Git Bash – Este tutorial utiliza Git Bash 2.36.
Quitar un Archivo de un Commit de Git
Cuando trabajas en Git como equipo, haces cientos de commits diarios. Como resultado, hay muchas posibilidades de que necesites deshacer un commit en particular, como debido a un archivo incorrecto o varios archivos. Esta necesidad suele ser causada por un cambio en el código o la configuración y se convierte en un problema.
Para resolver este problema, deberás quitar el archivo o archivos del commit de Git ejecutando comandos de Git. Utilizarás una de las herramientas populares para quitar un solo archivo del commit de Git, la herramienta Git Bash.
1. Abre la herramienta Git Bash en tu máquina Windows.
2. Luego, ejecuta el siguiente comando para crear una carpeta de repositorio y cambiar a esa carpeta. Estos comandos no proporcionan salida en la terminal. Pero asegúrate de reemplazar ~/Escritorio/Repositorio/repo1 con la ruta y el nombre de carpeta que prefieras.
3. Ejecuta los siguientes comandos para inicializar tu repositorio y crear dos archivos de texto llamados test1.txt y test2.txt.

4. Ahora, ejecuta el siguiente comando para verificar el estado del commit de Git.
Después de ejecutar el comando, notarás que los commits no están rastreados y aún no se han realizado, como se muestra a continuación.

5. Ejecuta el comando git add a continuación para agregar los dos archivos de texto que creaste en el paso tres (test_file1.txt y test_file2.txt) a tu repositorio local.
Este comando no proporciona una salida pero agrega los archivos sin enviarlos al repositorio remoto.
6. Luego, ejecuta el comando git commit a continuación para que Git lleve un seguimiento del progreso y los cambios que hiciste en el repositorio local.

7. Después de hacer commit, ejecuta el siguiente comando para eliminar un archivo específico (test_file2.txt) del commit de Git.

8. Por último, vuelve a ejecutar el comando git status a continuación para verificar el estado del repositorio.
Como puedes ver a continuación, el archivo ha sido eliminado del área de preparación (el commit de Git) y muestra el archivo (test_file2.txt) bajo Archivos sin seguimiento.

Eliminación de todos los archivos commitidos recientemente
Acabas de aprender a eliminar un archivo específico del commit de Git. Pero típicamente, tendrás que eliminar varios archivos, y Git está preparado para ello con el comando git reset. El comando git reset es una herramienta compleja pero, al mismo tiempo, versátil para deshacer cambios en el repositorio.
Para ver cómo funciona el git reset, harás commit de un par de archivos, luego resetearás los cambios para eliminar los archivos commitidos recientemente almacenados en el commit de Git:
1. Crea dos archivos de texto nuevos llamados test_file3.txt y test_file4.txt en la carpeta ~/Desktop/Repository/repo1.
2. A continuación, ejecuta el comando git add a continuación, que no proporciona una salida pero agrega los nuevos archivos de texto a tu repositorio local (~/Desktop/Repository/repo1).
3. Ejecuta el comando git commit a continuación para hacer commit de los archivos para que Git lleve un seguimiento del progreso y los cambios que has realizado en el repositorio.

4. Ahora, ejecuta el siguiente comando para verificar el estado de tu repositorio local.
Como puedes ver a continuación, la salida muestra el mensaje “nothing to commit”, indicando que todo está en su lugar en el repositorio.

5. A continuación, ejecuta el comando git reset que se muestra a continuación para revertir los commits realizados recientemente en el paso tres. Este comando no proporciona salida, pero elimina los archivos test_file3.txt y test_file4.txt.
También puedes usar git reset –soft HEAD^ para eliminar todos los archivos que se han cometido hasta ahora.
6. Luego, vuelve a ejecutar el comando git status que se muestra a continuación para verificar el estado del repositorio.
A continuación, la salida muestra los archivos test_file3.txt y test_file4.txt que deben ser cometidos. Esta salida indica los archivos que deben eliminarse del commit de Git.

Eliminar Commits Específicos del Historial de Git
Eliminar todos los archivos cometidos funciona perfectamente si deseas empezar de nuevo. Pero, ¿qué pasa si solo necesitas eliminar un commit en particular? El comando git revert hará el truco siempre y cuando conozcas la ID del commit.
En el último paso de la sección “Eliminación de Todos los Archivos Recientemente Cometidos”, notaste que los commits no se cometieron pero cambiaron. Ahora, cometerás los cambios para ver el comando git revert
en acción.
Ejecuta el comando git commit
a continuación para cometer los cambios recientes en tu repositorio local.
Después de ejecutar el comando, notarás que ambos archivos de texto se han vuelto a comprometer, y el ID de compromiso es 0315b85, como se muestra a continuación.

Ahora, ejecuta el comando git revert
a continuación para revertir el compromiso que hiciste en el paso anterior. Asegúrate de reemplazar 0315b85
con el ID de tu compromiso.
A continuación, puedes ver que se han eliminado dos archivos que comprometiste recientemente.

Eliminando un Directorio del Historial de Compromisos de Git
En este punto, ya sabes cómo eliminar un archivo comprometido, pero ¿qué hay de un directorio? Eliminar un directorio de un compromiso de Git es similar a eliminar archivos.
1. Ejecuta los siguientes comandos, que no proporcionan salida pero realizan lo siguiente:
- Crea una carpeta llamada
myfolder
dentro de tu repositorio local (~/Desktop/Repository/repo1).
- Crea un archivo llamado l.txt dentro de la carpeta ~/Desktop/Repository/repo1/myfolder.
2. A continuación, ejecuta los comandos git a continuación para agregar la nueva carpeta (~/Desktop/Repository/repo1/myfolder) a tu repositorio local.

3. Ejecuta el siguiente comando git rm para eliminar la carpeta (myfolder) que comprometiste en el paso dos.

4. Finalmente, ejecuta el comando git status para verificar el estado del repositorio y ver si la carpeta se ha eliminado.
A continuación, puedes ver que toda la carpeta (myfolder) se ha eliminado correctamente, junto con el archivo l.txt dentro.

Conclusión
En este tutorial, has aprendido a trabajar con commits de Git, como eliminar un commit específico, un archivo o varios archivos. También has abordado la eliminación de una carpeta completa dentro del repositorio local y has realizado la confirmación de los cambios.
En este punto, puedes realizar con confianza commits en tu repositorio y eliminar commits que consideres innecesarios sin complicar las cosas.
Con lo que has aprendido en este tutorial, ¿qué método crees que podría ser excelente para trabajar con commits en tu equipo?
Source:
https://adamtheautomator.com/git-and-remove-from-commit/