Worktrees 与忽略文件
用 git worktree 让 Cascade 任务并行运行互不干扰,post_setup_worktree 钩子,以及 .codeiumignore 控制索引。
Worktrees
Windsurf 支持用 git worktree 并行运行 Cascade 任务而不干扰主工作区:每个 Cascade 对话有自己的会话,可以在 worktree 里编辑、构建、测试。最简单的用法是把 Cascade 输入框右下角切换到「Worktree」模式;只能在 Cascade 会话开始时切换到 worktree,对话开始后不能移动到别的 worktree。Cascade 在 worktree 里做了文件改动后,可以点「merge」把改动合并回主工作区。位置:按仓库名组织在 ~/.windsurf/worktrees/<repo_name>,每个 worktree 有唯一随机名;git worktree list 查看活动的 worktree。注意 worktree 在不同目录,依赖相对路径(如 ../shared-lib、符号链接依赖、monorepo 源码依赖)的构建系统或工具可能出问题。每个 worktree 含仓库文件的副本,但不含 .env 等未纳入版本控制的文件和包;想带进去,用 post_setup_worktree 钩子:它在每个 worktree 创建并配置后、于新 worktree 目录里执行,环境变量 $ROOT_WORKSPACE_PATH 指向原工作区路径,可据此复制 .env 或安装依赖(在 .windsurf/hooks.json 里配置)。
忽略文件
默认情况下 Windsurf 索引会忽略:.gitignore 里的路径、node_modules 里的文件、以点开头的隐藏路径。被忽略的文件不会被索引,也不计入索引的最大工作区文件数。想进一步配置,在仓库根放 .codeiumignore(语法同 .gitignore);企业客户管理多个仓库时,可在 ~/.codeium/ 放全局 .codeiumignore,与各仓库自己的文件叠加生效。首次启用索引时会占用一部分 CPU,视工作区大小一般 5 到 10 分钟,每个工作区只需一次;「Max Workspace Size (File Count)」设置决定尝试索引的最大工作区,工作区没被索引时可以调整它。