# git lfs track 路径规则


  • 可以使用标准的 glob 模式匹配;
  • 文件或目录前加 / 表示仓库根目录的对应文件;
  • 匹配模式最后跟反斜杠 / 说明要忽略的是目录;
  • 要特殊不忽略某个文件或目录,可以在模式前加上取反 ! 。

其中 glob 模式是指 shell 所使用的简化了的正则表达式。

  • 星号 * 匹配零个或多个任意字符;
  • [abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
  • 问号 ? 只匹配一个任意字符;
  • 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
  • 路径规则例如:
    *.a                    # 所有以 '.a' 为后缀的文件
    tags                   # 仓库中所有名为 tags 的文件
    core.*                 # 仓库中所有以 'core.' 开头的文件
    
    tools/                 # 根目录下的 tools 目录(实际上track不到内容)
    /tools/                # 根目录下的 tools 目录(实际上track不到内容)
    /tools/*               # 根目录下 tools 目录的子文件(不包含子目录内容)
    /tools/**              # 根目录下 tools 目录的所有子文件和目录(递归包含子目录内容)
    
    **/foo                 # 表示/foo,a/foo,a/b/foo等
    a/**/b                 # 表示a/b, a/x/b,a/x/y/b等
    
    /log.log               # 仓库根目录下的 log.log 文件,不包括其他目录中的log.log
    readme.md              # 仓库中所有名为 readme.md 的文件
    !/readme.md            # 在上一条规则的条件下,不包括仓库根目录下的 readme.md 文件
注意:使用 git lfs track路径包含多个通配*号的命令,参数最好用引号,避免shell执行的一些匹配问题...例如 git lfs track "myfolder/**"

# .gitattributes

  • 在 track 后你可以在项目的根目录的.gitattributes查看 track 情况
  • 熟练后,你也可以直接改此文件,再 add,是一样的 如:
*.uasset filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.pak filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.anim filter=lfs diff=lfs merge=lfs -text
*.exe filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.doc filter=lfs diff=lfs merge=lfs -text
*.docx filter=lfs diff=lfs merge=lfs -text
*.xls filter=lfs diff=lfs merge=lfs -text
*.xlsx filter=lfs diff=lfs merge=lfs -text
lastUpdate: 6/28/2022, 11:10:40 PM