# 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