Skip to content

[Bug]gitignore 规则解析不完整,导致过滤绕过 #4

@Hendrix4858

Description

@Hendrix4858

loadGitIgnorePatterns 只处理了以 / 结尾(目录)和以 *. 开头(后缀)的简单模式.
比如
双星号(**/logs, **/*.tmp)无法匹配,整个目录或文件可能未被排除.
前导斜杠(/test:只匹配根目录的test)
例子
.gitignore

src/*.bak
**/*.tmp
**/logs
!test2.bak
/test

目录结构

 src/
│   ├── logs
│   ├── test/
│   │   └── test
│   ├── test.bak
│   ├── test.tmp
│   └── test2.bak
├── test/
│   └── test

匹配结果

src/
│   ├── logs
│   ├── test/
│   │   └── test
│   ├── test.bak
│   ├── test.tmp
│   └── test2.bak
├── test/
│   └── test

预期结果:

src/
│   ├── test/
│   │   └── test
│   └── test2.bak

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions