Worktree

worktree 会将同一仓库的另一个分支检出到独立的文件夹中。每个智能体使用一个 worktree,多个智能体就能同时处理同一个项目,而不会编辑彼此的文件。PATerminal 一步即可创建 worktree 并将其作为新会话打开。

基于 PATerminal v1.8.3 编写

创建 worktree

  1. 在位于仓库中的窗格里,点击窗格栏中的 Worktree(分支列表中也有)。
  2. 在 创建来源 下,选择 分支 或 拉取请求。
  3. 选择 基础分支(或拉取请求),并输入 新分支 名称。
  4. 选择 存放位置,还可以选择填写会话备注。
  5. 点击 创建。新会话会在 worktree 的文件夹中打开。

worktree 的存放位置

仓库外部(默认)
worktree 会集中放在以仓库命名的文件夹中,例如 ~/worktrees/acme-app/feature-login。可以输入绝对路径、~ 或 ..。不会改动你的 .gitignore。
仓库内部
worktree 会放在仓库内的某个文件夹中。如果该文件夹尚未被忽略,会将其添加到根目录的 .gitignore(作为一次普通的源码更改)。

复制被忽略的文件

新建的 worktree 中没有任何被 Git 忽略的文件,所以通常还无法直接运行。选择 忽略的文件(gitignore):从当前检出复制(默认)时,PATerminal 会将 .env、node_modules 和 .venv 等文件从当前检出复制到新的 worktree,并显示进度。选择 不复制 可跳过此步骤。

从拉取请求创建 worktree

选择 拉取请求 作为来源,即可列出打开状态的 PR(通过你的 gh)。PATerminal 会在该 PR 的分支上创建 worktree 并将其作为会话打开——非常适合在主检出继续工作的同时评审或修复 PR。如果该分支已有 worktree,则会直接复用。

管理 worktree

Git 窗口中的 worktree 列表会显示每个 worktree 及其分支和状态(当前、主、已锁定、缺失)。可以删除单个 worktree,或选择多个后点击 删除所选。删除 worktree 会保留其分支;主 worktree 和当前 worktree 无法删除。当 Git 因本地更改而拒绝删除时,会提供 强制删除。

Worktree 默认设置

“设置”→ Worktree 默认位置 用于设置默认位置以及是否复制被忽略的文件。开启 Automatically fill in the branch name 后,会自动生成由日期、时间和简短随机后缀组成的分支名。这些默认设置同样适用于从 Issue 或由结对模式创建的 worktree。

仍未解决?

请先查看常见问题,或发邮件告诉我们你的操作系统、PATerminal 版本以及已尝试过的操作。每封邮件我们都会回复。