Skip to main content
多任务与协作

并行处理多个任务

概述

当你想在同一个仓库里同时推进多个任务,又不希望它们互相干扰时,可以用并行协作。Qoder CLI 提供几种隔离手段:用 Worktree 把不同任务放进独立的 Git 检出,用 后台 Agent / Tasks 让多个子任务并行推进,并通过 Subagent 把复杂工作拆分给专门的子代理。 这样每个任务都有自己的工作区和上下文,避免多个会话共享同一个目录、互相覆盖改动。

Worktree 隔离

Worktree 让每个任务在独立的 Git 工作树中进行,互不影响。用 --worktree 启动:
qodercli --worktree feature-a
qodercli --worktree feature-a "实现登录修复"
qodercli --worktree
  • 不传名称时,Qoder 会自动生成一个 worktree 名称。
  • 新的命名 worktree 放在 <repo>/.qoder/worktrees/<处理后的名称> 下,并创建对应的临时分支。
  • 同名 worktree 已存在时会直接复用,而不是重复创建。
要求在 Git 仓库中运行,并且本地已安装 Git。Worktree 的创建、文件复制、恢复与清理等完整说明见 使用 CLI

并行会话

借助 Worktree,你可以为不同任务分别启动会话,让它们在各自独立的目录中并行进行:
# 终端 1:在 feature-a worktree 中处理任务 A
qodercli --worktree feature-a "实现登录修复"

# 终端 2:在 feature-b worktree 中处理任务 B
qodercli --worktree feature-b "重构日志模块"
每个会话都有自己的工作树和分支,改动彼此隔离,完成后可以分别提交或合并。

后台 Agent 与 Subagent

对于单个复杂任务,可以把它拆分给多个 Subagent 分别处理,让子任务并行推进。用 /tasks 查看当前正在运行的后台任务:
/tasks
Subagent 也支持 worktree 隔离:当某个 Markdown Subagent 需要在独立检出里修改文件时,在其定义中加入 isolation: worktree。干净的 Subagent worktree 会在结束后自动删除,有改动的则保留。 Subagent 的创建、配置与编排见 Subagent

恢复与清理

会话结束时,Qoder 会打印 worktree 路径和恢复该会话的命令。交互式退出会检查 worktree 中的未提交文件和新增提交:干净的 worktree 可以自动删除,存在本地文件或提交时会让你选择保留或删除。 需要手动清理时:
git worktree remove <worktree-path>
git branch -d worktree-<处理后的名>

提示

  • 一任务一 worktree:把互不相关的任务放进各自的 worktree,避免改动交叉。
  • 需要本地文件时:新 worktree 是干净检出,默认不含未跟踪文件。需要复制 .env 等文件时,用仓库根目录的 .worktreeinclude 声明,详见 使用 CLI
  • 及时清理:任务完成、合并后删除不再需要的 worktree 和临时分支,保持仓库整洁。