Probador de Gitignore
Pegue sus reglas .gitignore y una lista de rutas de archivos para ver exactamente qué archivos se ignoran, mediante qué regla y línea exacta, y qué reglas de negación están silenciosamente muertas porque un directorio principal ya está ignorado.
Resultado
"¿Por qué no funciona mi negación .gitignore?" es una de las preguntas más comunes sobre git que existen, y la respuesta honesta es casi siempre la misma: un `!pattern` que intenta volver a incluir un archivo dentro de un directorio que una regla anterior ya excluye nunca puede funcionar, porque git no desciende a directorios ignorados para volver a verificar nada dentro de ellos. Esta herramienta reimplementa el algoritmo de coincidencia .gitignore real de git (no una aproximación) específicamente para que pueda detectar y explicar esa situación exacta, junto con cualquier otra regla de patrón que admita git.
Pegue sus reglas .gitignore en un cuadro y una lista de rutas de archivos (una por línea, como `dist/index.js`, `node_modules/foo/bar.js` o `.env`) en el otro, y la herramienta evalúa cada ruta exactamente como lo haría git: los comentarios y las líneas en blanco se omiten, los espacios finales se eliminan a menos que se escapen, un `!` inicial niega una regla, un `/` inicial la ancla a la raíz en su lugar de permitir que coincida en cualquier profundidad, un `/` final lo restringe a directorios, y las clases de caracteres `*`, `?`, `[abc]` y `**` (coincidencia entre límites de directorio) funcionan según las reglas globales documentadas.
Fundamentalmente, las rutas se verifican directorio por directorio desde la raíz hacia abajo, de la misma manera que funciona el propio motor de ignorar de git, sin probar la ruta completa con cada regla de forma aislada. Eso es lo que hace posible detectar correctamente el caso de negación muerta: si `dist/` se ignora en la línea 3 y un `!dist/keep.js` posterior intenta rescatar un archivo dentro de él, esta herramienta informa que `dist/keep.js` aún se ignora, nombra la regla de la línea 3 como la razón y marca por separado la negación como ensombrecida en lugar de pretender silenciosamente que funcionó.
La tabla de resultados le da a cada ruta probada su propia fila con un veredicto claro de sí/no ignorado, el texto exacto de la regla y el número de línea que lo decidió y, cuando sea relevante, una nota en lenguaje sencillo que explica una negación sombreada o una regla de directorio principal heredada. Ese es el detalle que convierte un .gitignore confuso en uno sobre el que realmente puedes razonar antes de comprometerte.