Worktree
Git worktree 让你同时检出多个分支,每个分支在独立的目录中。ServerCC 提供完整的 worktree 管理 — 无需离开应用即可创建、切换、合并和删除 worktree。
Worktree 需要同时满足三个条件:(1) 服务器上已安装 Git,(2) 工作区是 Git 仓库,(3) 仓库至少有一次提交。如果任一条件不满足,创建 Worktree 按钮将被禁用并显示提示。
Worktree 列表
在会话选择器中,worktree 部分显示当前工作区的所有活跃 worktree。每个 worktree 显示:
- 分支名 — 与此 worktree 关联的 Git 分支
- 工作目录状态:
- ● Clean — 无未提交的更改
- ● Dirty — 有未提交的更改
- 合并状态:
- ● Ready to Merge — 有领先于基础分支的提交,可以合并
- ● Merge Conflict — 检测到合并冲突(预检),需要手动解决
- ● Merged — 该分支的工作已包含在基础分支中 — 即使经过 squash 或 rebase 合并也能识别
- 提交计数 — 领先 (↑) 和落后 (↓) 基础分支的提交数量
- 最新提交 — 最近一次提交的主题
状态在列表加载时计算;在终端里提交或合并之后,点击该部分底部的刷新 Worktree 可重新扫描。
创建 Worktree
在会话选择器中点击创建 Worktree 按钮。
输入分支名
为新分支选择一个名称(如 feature/login、fix/header-bug)。ServerCC 会验证名称是否已存在。
选择基础分支
选择从哪个分支创建 worktree。默认为当前分支。
创建
ServerCC 基于所选的基础分支创建带有新分支的 worktree。新的 worktree 目录位于 ~/.servercc/worktrees/<workspace>/<branch>/。
在 Worktree 中工作
点击列表中的任何 worktree 即可打开。这会导航到 worktree 目录并打开一个限定于该分支的 Claude Code/Codex 会话。标题栏中的工作区名称会显示分支:ProjectName (feature-branch)。
每个 worktree 都有独立的会话集 — 它们不与主工作区或其他 worktree 共享会话历史。
你可以将一个 worktree 会话放入后台并同时打开另一个 worktree 或主工作区。每个都作为独立的后台实例运行。
合并 Worktree
当分支上的工作完成后,你可以直接在 ServerCC 中将其合并回主分支。
在 worktree 上向右滑动显示合并按钮。合并操作仅在 worktree 状态显示 Ready to Merge(有领先提交且无冲突)时可用。
ServerCC 将分支合并到当前分支。始终创建合并提交以保留清晰的历史记录。
合并成功后,worktree 目录和分支会自动删除(清理)。
如果出现合并冲突,合并会自动中止以恢复干净状态。Worktree 会保留。你可以通过终端手动解决冲突后重试,也可以参考 Merge Conflict 状态提示在合并前修复冲突。
删除 Worktree
在 worktree 上向左滑动显示删除按钮。这会删除 worktree 目录和关联的 Git 分支。当你想完全丢弃该分支时使用。
有运行中后台实例的 worktree 会显示运行中徽章,在实例停止之前无法打开。请先在运行中标签页停止实例。
Worktree 存储
Worktree 存储在服务器上的以下位置:
~/.servercc/worktrees/<workspace-name>/<branch-name>/
每个 worktree 都是标准的 Git worktree — 你也可以通过终端或桌面端的 git worktree 命令与它们交互。