用 .stignore 文件让部分文件不参与设备间同步
.stignore 是什么
同步文件夹根目录下的一个纯文本文件,里面每行一条模式,匹配到的文件/目录不参与同步——既不发给别的设备,也不从别的设备收。
它不是同步来的:每个设备有自己的 .stignore,互不影响。这与某些工具「排除规则跟着目录走」不同——官方文档明确写了 .stignore 本身永远不会被同步到其他设备(但它可以用 #include 引用一个被同步的规则文件,见[前缀与 include(03-ignore-prefixes.md))。
建立方式
推荐从界面操作:文件夹卡片 → Edit → Ignore Patterns 标签,编辑后保存。直接用文本编辑器在文件夹根部创建 .stignore 文件也行(UTF-8 编码)。
典型排除需求
- 操作系统垃圾:
Thumbs.db、desktop.ini、.DS_Store——官方默认模式里就有这类; - 编辑器/IDE 的缓存目录:
.git、node_modules、__pycache__; - 临时文件:
*.tmp、*.bak、Office 的~$开头临时文档; - 巨大且可再生成的产物:编译输出、下载缓存。
立即生效与已有文件
新规则保存后立刻影响后续的扫描与传输判断。已经同步到各设备的历史文件不会因为被加入忽略而自动删除——忽略只决定「今后不再同步它们」,存量文件要自己清理或交给后续操作。
首条匹配原则
一个文件最终是否被忽略,取决于模式列表里第一条匹配它的规则——理解这一点是写复杂规则的钥匙:先用宽规则挡住一大批,再用 ! 取反规则在前面放行少数例外。语法细节见[通配符与取反(02-ignore-patterns.md)。
一个要留意的副作用
被忽略的文件可能挡住空目录的删除(目录里还有被忽略的文件时,程序不会删这个目录)。给可随目录一起删的忽略项加 (?d) 前缀可以解除这个困扰,详见[前缀与 include(03-ignore-prefixes.md)。