
官网中说明了:
Otherwise, Git treats the pattern as a shell glob: "*" matches anything except "/",
我记得 glob 表达式中*能匹配a.js , x.y , abc , abc/但不能匹配a/b.js, 这是正常的.
但是我刚才新建了一个 git 仓库试了下, .gitignore:
*.txt 能够排除:
a.txt b.txt c.txt f1/f1a.txt f1/f1b.txt f1/a.bd/bd.txt f2/a.txt ios/.../*.txt 
是我理解有问题吗?
1 qiqico 2018-05-10 15:51:52 +08:00 试试 **/*.txt |
3 ynyounuo 2018-05-0 15:58:11 +08:00 |
4 ethusdt OP 当我使用 python 的 fnmatch 匹配缺又能匹配上.. 怪! |
5 VDimos 2018-05-10 16:20:54 +08:00 via Android 可能是用的正则匹配的吧,楼主试试建个文件是 a.json.txt ,看看能不能匹配 |
6 ynyounuo 2018-05-10 16:27:37 +08:00 @FaiChou 看 doc 这一句 > A leading slash matches the beginning of the pathname. For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". 反过来说就是,没有 leading slash 就 matches recursively |
9 ynyounuo 2018-05-10 16:38:20 +08:00 |
10 ethusdt OP @ynyounuo 我有这样需求: 忽略很多`project.xcodeproj`下的`xcuserdata/`文件夹, 比如 ios/a/b/c/p.xcodeproj/xcuserdata/userfile ios/a/b/d/p.xcodeproj/xcuserdata/userfile 如果写 *.xcodeproj/xcuserdata/ 会失败. 只好写 ios/**/*.xcodeproj/xcuserdata/ 这样才能成功. |
11 ethusdt OP p.xcodeproj 是个工程文件包 |
12 ethusdt OP 官网说 "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". 可是我用 python3 的 fnmatch, 发现"/*.c"并不匹配"cat-file.c" . 所以说也不能全用 fnmatch 来检测. @ynyounuo |
13 jasonyang9 2018-05-11 08:52:43 +08:00 https://www.atlassian.com/git/tutorials/saving-changes/gitignore ``` git check-ignore -v pattern.ext ``` |