AI 助手
TRAE 智能问答助手
你好,我是 TRAE 文档问答助手 🎉 你在阅读当前文档的过程中,无论对文档概念的解释,还是文档内容方面的疑问,都可以随时向我提问,我会全力为你解答
推荐问题
TRAE IDE 里最热门的 Skill 是哪些?
如何创建自定义智能体?
如何配置 Rules?
文档反馈
入门
最佳实践
协作方式
Agent 配置
Design 模式
任务执行
网页与电脑操作
产物管理
外部应用授权
内置资源
系统设置
官方活动
相关协议

工作树

复制页面

工作树(Worktree)功能可以让不同的任务在相互隔离的 Git 环境中执行。当你需要在同一个项目中并行处理多个任务(例如,在一个任务中开发新功能,同时在另一个任务中修复紧急漏洞)并希望避免代码冲突时,该功能是理想之选。

它会为每个任务创建一个独立的目录,其中包含专属的文件、依赖项和代码变更,从而确保你的主工作目录保持整洁且不受干扰。

名词解释

名词 描述
工作树 Git 的一项原生机制,允许单个代码仓库同时拥有多个独立的工作目录,每个目录可以检出不同的分支。
工作树分支 某个工作树当前检出的 Git 分支。它决定了这个工作树目录里显示的是哪条分支的代码,例如 feat-pet-shop-1sfbnt
工作树目录 与某个工作树关联的本地文件夹路径,即你在文件系统中能看到的、存放实际代码的目录。在 TraeWork 中,此目录的名称与对应的工作树分支名称一致,格式为 /{worktree_branch_name}

适用范围

仅适用于 Code 模式中的本地任务。

前置条件

确保你已在本地安装 Git。

创建工作树

发起任务前,在对话输入框左下角,将模式设置为 工作树

Image

任务启动后,智能体将为此任务自动创建一个专属的工作树分支和对应的工作树目录。你可以在对话输入框顶部看到带工作树标记的新分支。

Image

合并代码

当智能体在工作树中完成编码后,你可以将代码合并到主分支或其他目标分支。操作方式如下:

  • AI 自动合并:在对话框顶部的工作树分支栏中,点击 AI 合并 按钮。AI 将自动分析代码变更、解决冲突并完成合并。
  • 手动合并:在对话框顶部的工作树分支栏中,点击 ··· 并选择 手动合并 选项,然后按照界面指引操作。若出现冲突,你需要先点击 AI 解决冲突 按钮解决冲突,再继续该流程。

代码合并后,对话流底部将显示一条带有 “代码已合并” 文案的分割线。请注意,由分割线上方的对话所产生的内容无法回退。

查看工作树的磁盘占用

你可以随时查看各工作树占用的本地磁盘空间。

  1. 前往 设置 > 工作树
  2. 工作树磁盘占用 区域,查看所有项目下各个工作树的磁盘空间占用。

清理工作树

清理工作树会将其对应的本地目录(工作树目录)彻底清除以释放磁盘空间,但该任务的对话历史和代码变更记录将被保留。此外,你可以选择是否保留该工作树的 Git 分支。

清理工作树的方式如下:

  • 方式一:从任务列表中清理
    1. 在左侧任务栏中,将鼠标悬停在目标任务上。
    2. 点击出现的 ··· 图标,然后选择 删除工作树
    3. 在弹窗中,根据需要勾选 保留工作树分支 选框,然后点击 删除 按钮。
  • 方式二:从设置中心清理
    1. 前往 设置 > 工作树
    2. 工作树磁盘占用 区域,从列表中选择需要删除的工作树。
    3. 点击右下角的 清理 按钮。
    4. 在弹窗中,根据需要勾选 保留工作树分支 选框,然后点击 删除 按钮。
  • 方式三:从工作树分支栏中清理
    1. 在对话框顶部的工作树分支栏中,点击 ··· 图标,然后选择 删除工作树。若代码合并已完成,分支栏将直接显示 删除工作树 按钮。
    2. 在弹窗中,根据需要勾选 保留工作树分支 选框,然后点击 删除 按钮。

提示

清理工作树时,如果你选择保留其 Git 分支,系统将只删除本地的工作树目录,而分支本身会保留下来。之后,你仍然可以前往 设置 > 工作树,在 工作树磁盘占用 区域找到并彻底清理该分支。

相关设置

前往 设置 > 工作树,在 工作树清理 区域,按需进行以下设置:

设置 描述
清理工作树时默认保留分支 启用该功能后,在你删除工作树时,确认弹窗中将默认勾选 保留工作树分支 选框。
工作树磁盘空间占用提醒 设置一个磁盘空间占用阈值。当所有工作树目录占用的总空间达到此阈值时,系统将发出通知,提醒你进行清理。