¿Por qué no funciona .gitignore?

Suele deberse a un archivo ya seguido, una regla en otro lugar o un patrón que no coincide con la ruta esperada.

1. Comprobar si Git ya sigue el archivo

Las reglas se aplican a archivos que se desea mantener sin seguimiento. Añadir un patrón no elimina del índice un archivo incluido en un commit anterior.

git ls-files -- path/to/file

Si aparece la ruta, el archivo está seguido. Consulta la guía correspondiente:

¿Cómo ignorar archivos que Git ya sigue?

2. Identificar la regla aplicada

Ejecuta la comprobación desde el repositorio con la ruta relativa real. La salida indica el archivo de reglas y la línea.

git check-ignore -v -- path/to/file

Para comprobar un archivo ya seguido, usa --no-index:

git check-ignore -v --no-index -- path/to/file

3. Revisar ubicación y orden

Un / inicial ancla el patrón al directorio del .gitignore; uno final lo limita a directorios. A igual prioridad, un patrón posterior puede reemplazar uno anterior. ! puede volver a incluir una ruta, pero no un archivo cuyo directorio padre esté excluido del recorrido de Git.

¿Por qué ! no conserva un archivo en un directorio ignorado?

4. Revisar otras fuentes

Git también lee .git/info/exclude y el archivo global definido por core.excludesFile. Un archivo puede quedar oculto aunque no haya una regla en el .gitignore del proyecto. Comprueba la configuración global:

git config --get core.excludesFile

¿Por qué una regla global de Git ignora un archivo?

Consulta las referencias oficiales para conocer el comportamiento exacto y más detalles: Documentación de Git