Compruebe una ruta con patrones .gitignore
Sepa si Git ignoraría un archivo y qué regla lo decide: logs/build.log queda ignorado por *.log, la segunda regla de la lista, y una regla posterior como !important.log puede revertir una anterior. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Patrones
- dist/, *.log, !important.log, secrets/**
- Ruta
- logs/build.log
- Patrón coincidente
- *.log
- Índice coincidente
- 1
Compruebe una ruta relativa al repositorio con una lista ordenada de patrones .gitignore, sin crear un repositorio temporal ni ejecutar Git. El resultado indica si la ruta se ignora y, cuando coincide una regla, identifica el último patrón decisivo y su posición basada en cero. El comprobador admite comentarios, caracteres escapados, reglas ancladas a la raíz, reglas de directorio, comodines, clases de caracteres, patrones recursivos con doble asterisco y negaciones. Además, rechaza los patrones mal formados en lugar de interpretarlos silenciosamente como literales inofensivos.
Proporcione las reglas en su orden real
Un archivo .gitignore no es simplemente un conjunto de globs independientes. Git evalúa las reglas en orden, y una regla posterior que coincida puede cambiar la decisión de una anterior. Envíe los patrones exactamente en el orden en que aparecen en el archivo de exclusión correspondiente.
Los patrones coincidentes normales marcan la ruta como ignorada, mientras que una regla que comienza con un signo de exclamación sin escapar revoca esa decisión. Las líneas vacías y las que empiezan con una almohadilla sin escapar se tratan como líneas sin regla, igual que en un archivo de exclusión habitual. La respuesta incluye el último patrón coincidente y su índice de matriz basado en cero, lo que permite explicar resultados inesperados en una herramienta de compilación o un editor de configuración.
Las rutas deben ser relativas a la raíz del repositorio y utilizar barras diagonales. Una ruta estable y normalizada evita resultados distintos por un prefijo absoluto, un segmento de directorio superior o separadores propios del sistema operativo.
Conozca el comportamiento de coincidencia
Un asterisco coincide con cualquier cantidad de caracteres dentro de un único segmento de ruta, y un signo de interrogación coincide con un carácter que no sea una barra. Una barra inicial ancla la regla en la raíz del repositorio. Un patrón sin barras puede coincidir con un nombre a cualquier profundidad; si ese nombre representa un directorio en la ruta proporcionada, también queda cubierto todo su contenido.
Una barra final expresa una regla de directorio. Como el comprobador recibe una ruta y no un árbol de archivos, decide a partir del texto de la ruta y sus antecesores; no consulta si el componente final existe como archivo o directorio. Las almohadillas y exclamaciones iniciales escapadas siguen siendo literales, y los espacios finales sin escapar se descartan según las convenciones de estos archivos.
Use la validación para detectar defectos
Los errores de glob pueden pasar inadvertidos cuando un archivo de exclusión crece mediante muchas modificaciones pequeñas. Este comprobador devuelve una entrada no válida ante estructuras incorrectas, como una clase de caracteres sin cerrar o vacía, un escape colgante o un signo de negación sin expresión. Una respuesta correcta no modifica las reglas ni depende de un servicio de red, la hora actual, un valor aleatorio, el contenido del repositorio o el sistema operativo anfitrión.
Por ello resulta adecuada para comprobaciones deterministas antes de confirmar cambios, formularios web, diagnósticos de IDE y pruebas de políticas en CI.
Qué puede hacer con ella
Explique una entrada de compilación ausente
Contraste la ruta ausente con las reglas del proyecto y muestre la regla final responsable de excluirla.
Valide un editor de archivos de exclusión
Previsualice cómo una regla reordenada o una nueva negación cambia el resultado antes de guardar la configuración.
Aplique políticas del repositorio en CI
Confirme que los artefactos generados se ignoran y que los datos de prueba y fuentes obligatorios siguen disponibles para seguimiento.
Preguntas frecuentes
¿Importa el orden de las reglas?
Sí. Cada regla se evalúa en orden y la última que coincide determina si la ruta se ignora.
¿Se admiten patrones negados?
Sí. Un signo de exclamación inicial sin escapar crea una regla negada que puede volver visible una ruta ignorada previamente.
¿El comprobador lee el repositorio o la configuración global de Git?
No. Solo utiliza los patrones y la ruta relativa al repositorio proporcionados en la solicitud.
¿Pueden los patrones abarcar varios directorios?
Sí. Los patrones con doble asterisco pueden atravesar límites de directorio, mientras que un asterisco sencillo permanece dentro de un segmento.
¿Cómo sé qué regla decidió el resultado?
La respuesta indica la última regla que coincidió y su posición en la lista, contando desde 0. En el ejemplo, logs/build.log queda ignorado por *.log en la posición 1, lo que permite explicar un resultado inesperado.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev2/gitignore-check-path \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"patterns":["dist/","*.log","!important.log"],"path":"logs/build.log"}'const res = await fetch("https://api.kit.forhosting.com/dev2/gitignore-check-path", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"patterns": [
"dist/",
"*.log",
"!important.log"
],
"path": "logs/build.log"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/gitignore-check-path",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"patterns": [
"dist/",
"*.log",
"!important.log"
],
"path": "logs/build.log"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/gitignore-check-path", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"patterns":["dist/","*.log","!important.log"],"path":"logs/build.log"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"patterns":["dist/","*.log","!important.log"],"path":"logs/build.log"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/gitignore-check-path", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"patterns": [
"dist/",
"*.log",
"!important.log"
],
"path": "logs/build.log"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.gitignore_check_path",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_patterns | 1000 |
max_pattern_chars | 1024 |
max_path_chars | 4096 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Conozca el comportamiento de coincidencia
Las clases como `[0-9]` seleccionan un carácter de un conjunto o intervalo. Un doble asterisco puede atravesar límites de directorio; por eso, `docs/**/draft*.md` abarca borradores situados directamente bajo `docs` y también en carpetas más profundas.
Use la validación para detectar defectos
También limita la cantidad y longitud de los patrones para impedir que un endpoint de validación realice trabajo de compilación sin límites. Al integrarla en una automatización, conserve `matching_pattern` junto con la decisión booleana: la explicación suele ser más útil que el booleano aislado. La versión del navegador ejecuta el mismo solucionador puro que la API, y cada solicitud de API usa el precio base publicado de $0.002.
Preguntas técnicas
¿Qué ocurre si un patrón está mal formado?
La solicitud falla con un error invalid_input que identifica la posición del patrón y el problema estructural.
¿Cuánto cuesta una solicitud de API?
El precio base es $0.002 por solicitud. El mismo solucionador determinista también está disponible en el navegador.