Cómo ignorar archivos ya rastreados en Git
La solución definitiva a una de las dudas más frecuentes en Git: cómo excluir archivos ya confirmados sin perder tus configuraciones locales.
Por diseño, el archivo .gitignore solo aplica reglas a los archivos no rastreados (untracked). Una vez que un archivo ha sido preparado (staged) y confirmado (committed) en el repositorio, Git lo vigila activamente en su índice.
Git nunca dejará de rastrear un archivo existente simplemente porque agregues su nombre a .gitignore. Para que la regla funcione, debes eliminarlo explícitamente del índice de Git manteniendo intacto el archivo físico en tu disco.
.gitignore evita que se agreguen archivos nuevos por error; no deja de rastrear archivos que Git ya está vigilando.
Usa el modificador --cached junto con git rm para quitar el archivo del índice sin borrar tu copia local:
# 1. Asegúrate de incluir el patrón en tu .gitignore
echo ".env" >> .gitignore
# 2. Elimina el archivo únicamente del índice de Git
git rm --cached .env
# 3. Confirma el cambio
git commit -m "Stop tracking .env file"Si se confirmó por error una carpeta entera como build/ o node_modules/, usa la opción recursiva -r junto con --cached:
# 1. Agrega la carpeta a .gitignore
echo "build/" >> .gitignore
# 2. Elimina la carpeta del índice de forma recursiva
git rm -r --cached build/
# 3. Confirma la eliminación del índice
git commit -m "Stop tracking build/ output directory"Si se confirmaron muchos archivos antes de configurar el archivo .gitignore, lo más seguro es vaciar el índice y volver a agregarlo respetando las nuevas reglas:
# 1. Asegúrate de tener tu trabajo limpio o guardado en stash
git status
# 2. Elimina todos los archivos del índice de Git
git rm -r --cached .
# 3. Vuelve a agregar respetando .gitignore
git add .
# 4. Confirma la actualización del índice
git commit -m "Refresh repository tracking to match .gitignore"Ejecutar git rm --cached no toca tu archivo físico local. Sin embargo, al subir este commit a la rama compartida, los compañeros que ejecuten git pull verán que el archivo fue eliminado del repositorio y Git lo borrará de sus discos locales a menos que hagan una copia de respaldo antes.
Avisa a tu equipo antes de subir cambios que dejen de rastrear archivos de configuración y proporciona una plantilla como .env.example.
Preguntas frecuentes
Respuestas a dudas comunes de desarrolladores sobre reglas de .gitignore, caché y gestión del repositorio.
¿Por qué Git sigue rastreando mi archivo después de añadirlo a .gitignore?
.gitignore solo afecta a archivos no rastreados. Si el archivo ya estaba confirmado, Git lo seguirá vigilando hasta que ejecutes 'git rm --cached <archivo>'.
¿git rm --cached borra mi archivo del disco?
No. La opción --cached solo elimina el archivo del índice de Git (área de preparación). Tu archivo físico permanece intacto en tu disco local.
¿Qué ocurre cuando otros desarrolladores hacen git pull de este commit?
Como el archivo se registra como eliminado del repositorio, git pull lo borrará de las computadoras de tus compañeros. Comparte siempre un archivo .env.example para que puedan recrearlo.
Guías y Referencias de .gitignore
Guía de sintaxis y patrones en .gitignore
Desglose exhaustivo del formato de patrones, globbing con comodines, barras iniciales y finales, sutilezas de negación y rangos de caracteres en Git.
Cómo ignorar un directorio en Git
Explicación clara de las reglas para ignorar carpetas: semántica de barra final, rutas relativas a la raíz, subdirectorios y cómo conservar carpetas vacías.
Ejemplos de .gitignore para stacks modernos
Ejemplos prácticos y seleccionados de archivos .gitignore para lenguajes populares, frameworks backend, videojuegos, desarrollo móvil y contenedores.