Ya hacía un tiempo que no hablábamos de Git en este blog, pero nunca es tarde para retomar las buenas costumbres. Lo hacemos hoy, profundizando en el uso de este sistema de control de versiones del código. En este tutorial práctico, explicamos cómo eliminar los archivos de un repositorio Git en tu tienda online o web después de haberlos ignorado con .gitignore.
Como vimos en Cómo ignorar archivos con Git mediante el archivo de configuración .gitignore, con el archivo .gitignore, configuramos las carpetas y archivos que se tienen que ignorar al añadir un repositorio. Si se gestiona correctamente todo debería funcionar, pero si se agrega material al repositorio que no deseamos podemos encontrarnos con un par de situaciones: el archivo se ha añadido al Staging Srea, pero que no se ha hecho commit a los archivos, o el archivo o carpeta ya existe en el repositorio porque previamente se haya hecho un commit.
Sin más preámbulos, veamos los distintos casos sobre cómo eliminar los archivos de un repositorio Git.
Suprimir el seguimiento de archivos que están sólo en Staging Area
El área intermedia de Git, donde se asientan los archivos a los que seguimos antes de un commit, es el denominado Staging Area.
Eliminarlos es sencillo con el siguiente comando:
git reset HEAD nombre_de_archivo
Si deseas eliminar todos los ficheros del directorio donde te encuentras, el comando sería el siguiente:
git reset HEAD
Con el comando git status se comprueba que los archivos ya no están en seguimiento.
Suprimir del repositorio archivos ya confirmados
El principal problema podría venir si quieres eliminar un archivo ya confirmado, o una carpeta con archivos que no corresponden estar en el repositorio. Los archivos a los que hemos realizado commit por primera vez forman parte del repositorio, por lo que quitarlos de ahí, requiere de un paso adicional.
Eliminar los archivos del repositorio
Con el comando rm podremos borrar los archivos del repositorio, pero si lo ejecutamos tal cual nos eliminará también el archivo de nuestro directorio de trabajo.
Si queremos conservarlo tendríamos que poner lo siguiente:
git rm --cached nombre_archivo
Y si queremos eliminar el directorio y su contenido haríamos esto:
git rm -r --cached nombre_directorio
Con –cached mantenemos los ficheros en nuestro directorio de trabajo.
Verificar que estamos ignorando los archivos con .gitignore
Debemos asegurarnos de que los archivos están siendo ignorados de manera correcta, y esto lo haremos revisando el archivo .gitignore.
Commit para validar los cambios
Ya con los archivos que no queremos y por tanto ignorados, deberemos confirmar estos cambios. Esto lo haremos situándonos en la carpeta en cuestión e introduciremos el siguiente comando:
git commit -m 'Eliminados archivos no deseados'
Enviar los cambios al repositorio remoto
El último paso, si tienes un repositorio remoto donde envías código, es trasladar los datos allí y esto lo hacemos con el comando push.
git push
Y si tenemos que especificar el repositorio remoto y la rama, sería así:
git push origin master
Aunque quites los archivos del repositorio se podrán seguir viendo en el histórico ,y aunque se pueden quitar del histórico de commits, requiere de otros pasos de mayor complejidad.