Cómo eliminar archivos de un repositorio Git después de ignorarlos


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

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 podemos suprimir los archivos de un repositorio git 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.

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.


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+