保留文件
切换章节时,学习目录里的源码会被对应的章节快照替换,而不是把两章的文件混在一起。快照会先原位复制,再删除不在快照里的路径。
在 course.jsonc 里,retain 使用与 .gitignore 相同的匹配规则(从学习目录根算起):
node_modules会保留树中任意位置的node_modules/node_modules只保留根目录的node_modulesnode_modules/只匹配目录*.log匹配任意目录下的该后缀!important.txt为 gitignore 式否定
省略 retain 时会保留 node_modules。显式写成 [] 则不额外保留项目路径。
学习目录里的副本 .learn/course/course.jsonc 还会加上 .git、.learn、.gitignore 和 *.code-workspace。这些不用自己写。
工作区 .gitignore 仍然只告诉 git 哪些文件不要提交。切换章节时留下什么,只看 retain。
注意
- 快照里已有的文件仍会被快照覆盖,即使
retain也匹配到了它。 - 被 git 忽略的目录(例如
dist/)如果没有被retain匹配到,切章时会被删除。