Cómo eliminar archivos de un repositorio de Git

Git

En este tutorial aprenderás a eliminar archivos de repositorios de Git. Esto es algo que querrás hacer cuando agregar una archivo sin querer al repositorio, como pueden ser archivos compilados o archivos con información privada.

Como es mejor prevenir que curar, cuando añadas un archivo y no quieres que éste se incluya en el repositorio, debes asegurarte de que el archivo se encuentre definido en el archivo .gitignore de tu proyecto. Sin embargo, en ocasiones podrías olvidarte, hasta que ejecutas el comando git add . y ves que el archivo se ha agregado al repositorio. Aquí verás cómo solucionarlo.

Elimina un archivo del repositorio

Para eliminar el archivo del repositorio sin eliminarlo de tu sistema, basta con ejecutar el comando git rm con la opción --cached y la ruta al archivo:

git rm --cached ruta/al/archivo.ext

El comando anterior eliminará el archivo del repositorio, manteniéndolo en el sistema. Debes asegurarte de que la opción --cached esté presente, ya que de lo contrario, el archivo también se eliminará de tu sistema. Para comprobar que el archivo se ha eliminado, usa el comando git status.

Para que los cambios surtan efectos en el repositorio remoto, debes hacer un commit y luego un push al repositorio remoto.

git commit -a -m "Archivo archivo.ext eliminado"
git push origin main

Para evitar que el archivo se agregue nuevamente al repositorio en el futuro, debes incluirlo en el archivo .gitignore:

ruta/al/archivo.ext

Elimina un directorio del repositorio

Para eliminar el directorio del repositorio sin eliminarlo de tu sistema, también debes ejecutar el comando git rm junto con la opción --cached y la ruta del directorio:

git rm --cached ruta/al/directorio

Este comando mantendrá el directorio en tu sistema, eliminándolo únicamente del repositorio. Del mismo modo, no te olvides de usar la opción --cached. Puedes usar el comando git status para comprobar que el archivo se ha eliminado de tu repositorio, aunque permanezca en tu sistema.

Para que el directorio también se elimine del repositorio remoto, debes hacer un commit y luego un push al repositorio remoto:

git commit -a -m "Directorio directorio eliminado"
git push origin main

Para evitar que el directorio se vuelva a agregar al repositorio, agrégalo al archivo .gitignore:

ruta/al/directorio

Elimina archivos o directorios del historial

Es importante destacar que si el archivo contiene información privada y ya se encuentra en el repositorio remoto, todavía podría ser accesible desde el historial de Git.

Para eliminar un archivo del historial puedes usar este comando:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch ruta/al/archivo.ext' HEAD

Para eliminar un directorio del historial puedes usar este comando:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch ruta/al/directorio' HEAD

Si el archivo se ha agregado recientemente, no será problemático, aunque si se trata de múltiples archivos y llevan mucho tiempo en repositorio, se generarán muchos commits, tal y como podemos ver aquí.

Esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”