Mcatorce Suite
← Volver al blog

Cómo Funciona .gitignore: Patrones, Negación y Ejemplos

Las reglas de coincidencia de patrones de .gitignore, con comodines, marcadores de directorio, negación con signo de exclamación y las entradas comunes para Node, Python y editores.

Prueba la herramienta: Generador de .gitignore

Un archivo .gitignore le dice a Git qué archivos y carpetas dejar fuera del control de versiones. Mantiene fuera del repositorio la salida de compilación, las dependencias, los registros y los secretos.

Fundamentos de los patrones

Cada línea es un patrón. Las líneas en blanco se ignoran y las que empiezan por # son comentarios.

  • *.log ignora todos los archivos que terminan en .log.
  • build/ ignora un directorio llamado build (la barra final significa solo directorio).
  • /todo.txt ignora todo.txt solo en la raíz del repositorio (una barra inicial ancla el patrón).
  • docs/*.txt ignora los archivos .txt directamente dentro de docs, pero no más profundo.
  • **/temp coincide con una carpeta temp a cualquier profundidad.
  • ? coincide con un carácter, y [abc] con un carácter de un conjunto.

Negación

Una línea que empieza por ! vuelve a incluir algo que un patrón anterior ignoró:

*.log
!important.log

No puedes reincluir un archivo si su directorio padre está excluido, ya que Git no mira dentro de las carpetas ignoradas.

Dónde vive el archivo

Un .gitignore se aplica a su directorio y a los inferiores. Puedes tener varios. Las reglas que solo afectan a tu equipo, como los archivos del editor, pueden ir en .git/info/exclude, y un archivo de ignorados global puede cubrir todos tus repositorios.

Entradas típicas

  • Node: node_modules/, dist/, .env, npm-debug.log*.
  • Python: __pycache__/, *.pyc, .venv/, .env.
  • Editores y SO: .vscode/, .idea/, .DS_Store, Thumbs.db.
  • Registros y cachés: *.log, .cache/, coverage/.

Archivos que ya se rastrean

Ignorar no tiene efecto sobre los archivos que Git ya rastrea. Para dejar de rastrear un archivo pero conservarlo en disco, ejecuta git rm --cached <archivo> y haz commit. Es un cambio en el índice, así que hazlo de forma deliberada.

Depuración

git check-ignore -v <ruta> muestra qué regla ignora una ruta.

Preguntas frecuentes

¿Debe subirse el propio .gitignore? Sí, para que todo el equipo comparta las reglas.

¿Puedo ignorar todo excepto unos pocos archivos? Sí, empieza con * y añade negaciones, recordando la regla del directorio.