首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  程序员

gitignore 中*.json 为何能递归匹配所有文件夹下 json 文件?

  •  
  •   FaiChou · 102 天前 · 918 次点击
    这是一个创建于 102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    官网中说明了:

    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
    

    g

    是我理解有问题吗?

    13 回复  |  直到 2018-05-11 08:52:43 +08:00
        1
    qiqico   102 天前
    试试 **/*.txt
        2
    FaiChou   102 天前
    @qiqico 这个我知道是可以的, 我只是不明白为何 * 能匹配 /
        4
    FaiChou   102 天前


    当我使用 python 的 fnmatch 匹配缺又能匹配上.. 怪!
        5
    VDimos   102 天前 via Android
    可能是用的正则匹配的吧,楼主试试建个文件是 a.json.txt ,看看能不能匹配
        6
    ynyounuo   102 天前
    @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
        7
    FaiChou   102 天前
    @VDimos

    不是正则匹配. glop 是最早 unix 下的简单匹配

        8
    FaiChou   102 天前
    @ynyounuo 谢谢 这么说挺合理的
        9
    ynyounuo   102 天前
    @FaiChou
    其实我也很混乱,在你发这个主题前如果要忽略所有文件夹下的固定后缀我一直都写 **/*.ext
    所以 `**/.*txt` 和 `*.txt` 是等价的么?
        10
    FaiChou   102 天前
    @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
    FaiChou   102 天前
    p.xcodeproj 是个工程文件包
        12
    FaiChou   102 天前



    官网说 "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".

    可是我用 python3 的 fnmatch, 发现"/*.c"并不匹配"cat-file.c" .

    所以说也不能全用 fnmatch 来检测.

    @ynyounuo
        13
    jasonyang9   102 天前
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2692 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 18ms · UTC 04:29 · PVG 12:29 · LAX 21:29 · JFK 00:29
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1