Gitignore 路径规则检查
按单个根目录 Gitignore 检查指定路径,列出最后匹配规则及阻挡重新包含的父目录。
浏览器本地处理输入.gitignore + 路径输出JSON / CSV单个文件最多 1 MiB · 最多 1 个
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
修改忽略规则前,先查清某个路径为什么被忽略。使用原始路径拼写,以末尾斜杠声明目录,并查看最终生效规则。
如何使用
- 粘贴或打开一个根目录 .gitignore,每行输入一条路径,保留大小写和有意义的空格。
- 用末尾 / 标记目录,查看状态、规则行号及阻挡父目录。
- 下载完整报告;实际仓库中的已跟踪文件、全局规则和嵌套规则需要另外检查。
支持范围与限制
一个 UTF-8 规则文件或粘贴规则,加路径列表,合计不超过 1 MiB。最多 5,000 个物理规则行、10,000 条路径;每条路径最多 1,024 个 UTF-16 单元、32 个层级。最多执行 2,000,000 次规则匹配。所选文件优先。
路径是相对规则根目录、区分大小写的 POSIX 名称。末尾 / 声明目录,未标记的最后一段声明文件。不接受绝对路径、反斜杠、空段、.、.. 或控制字符。不读取仓库、已跟踪状态、全局规则或嵌套规则。
复用锁定的 ignore 7.0.5 编译规则,支持转义 #/!、空格、字符集合、** 和否定。最后直接匹配的规则生效;被排除的父目录阻止重新包含子路径,报告显示该父目录及其生效规则。允许空规则或纯注释。支持 LF/CRLF,拒绝仅 CR 换行。
表格显示前 200 条路径,JSON/CSV 下载保留全部路径。默认对类似公式的 CSV 单元格加单引号;JSON 保留路径与规则原文。
操作示例
示例输入
*.log !keep.log build/ !build/keep.txt
示例参数
{"secondary": "a.log\nkeep.log\nbuild/keep.txt\nsrc/main.ts", "params": {}}示例输出
{
"scope": "one root .gitignore; supplied paths only",
"records": [
{
"path": "a.log",
"directory": false,
"ignored": true,
"status": "ignored",
"line": 1,
"pattern": "*.log",
"blockingPath": null
},
{
"path": "keep.log",
"directory": false,
"ignored": false,
"status": "unignored",
"line": 2,
"pattern": "!keep.log",
"blockingPath": null
},
{
"path": "build/keep.txt",
"directory": false,
"ignored": true,
"status": "ignored",
"line": 3,
"pattern": "build/",
"blockingPath": "build/"
},
{
"path": "src/main.ts",
"directory": false,
"ignored": false,
"status": "unmatched",
"line": null,
"pattern": null,
"blockingPath": null
}
]
}出现问题时
修正路径拼写并显式标记目录。切换到粘贴规则时先移除所选文件。匹配预算超限时,减少路径或规则数量,或拆成较小批次。
常见问题
被忽略目录中的否定规则会生效吗?
父目录仍被排除时,不能重新包含子路径。请先重新包含父目录。
会判断文件是否已被 Git 跟踪吗?
不会。这里只检查输入的根目录规则,跟踪状态不属于输入。
结果中的规则行为空是什么意思?
没有直接匹配该文件或目录的规则,也没有被排除的父目录阻挡。明确匹配否定规则的路径会单列为 unignored。