Git 工作树 | LanMate 使用手册
使用奇安信版 LanMate?查看奇安信版用户手册

Git 工作树

工作树(Worktree)让不同任务在相互隔离的 Git 环境中执行。当你需要在同一个项目里并行处理多个任务——比如一边开发新功能、一边修复紧急 Bug——又不希望两边改动互相踩踏时,工作树是理想选择。

每个工作树是一个独立目录,拥有专属的文件、分支和代码变更。你的主工作目录保持整洁不受干扰,任务结束后再把成果合并回来。

名词解释

名词 描述
工作树 Git 的原生机制,允许一个仓库同时拥有多个独立的工作目录,每个目录检出不同分支
工作树分支 某个工作树当前检出的分支,命名形如 lanmate/task-8c295571
工作树目录 工作树对应的本地文件夹。LanMate 统一放在 ~/.lanmate/worktrees/<项目>/ 受管根下
基础分支 工作树创建时基于的分支,任务改动最终静默合并回这条分支

工作树不会建在你的项目仓库里(git status 里不会多出目录),而是集中在 LanMate 自己的目录下,按项目归类、统一管理。

适用范围与前置条件

非 Git 项目或不涉及代码改动的办公任务,直接在项目当前目录执行即可,无需工作树。

四类工作树来源

来源 何时创建 命名
任务 输入框选择「新工作树」后发出任务 task-<会话8位>
分叉 会话分叉时选择「在新工作树中继续」 fork-<会话8位>
子代理 编码任务的子代理需要隔离环境时 subagent-<代理8位>
看板 看板任务派发给 Agent 执行时 taskboard-<任务>

四类工作树都在设置 → Git → 工作树中统一可见、可清理,并按来源标注。

为新任务创建工作树

  1. 在 Git 项目的对话输入框下方,找到 Git 工作区选择器
  2. 默认是「本地」(使用项目当前工作树),切换为「新工作树」
  3. 可选:点击分支选择基线分支(默认当前分支)
  4. 发出任务,LanMate 自动创建专属工作树

任务启动后,会话顶部的置顶摘要会显示当前工作树分支,确认改动隔离生效。

在新工作树中继续

对话进行到某处想换一条路,又不污染原工作区:

  1. 悬停目标消息,点击「分叉」
  2. Git 项目会弹出二选一:新聊天(同目录继续)或 在新工作树中继续
  3. 选择新工作树后,分叉携带源检出的未提交现场(含未跟踪文件),在途改动不会丢失

详见会话管理

AI 合并

任务完成、改动验证无误后,把工作树成果合并回基础分支:

  1. 打开会话顶部置顶摘要,展开 Git 状态
  2. 工作树行点击「AI 合并」
  3. Agent 会先审查工作树的改动,按项目提交规范补齐提交,再合并回基础分支;出现冲突时按仓库惯例解决

合并是 Agent 执行的完整 Git 流程,过程透明可追溯;对合并策略有特殊要求时,也可以直接在对话里说明。

查看磁盘占用

工作树是完整检出目录,会占磁盘空间。随时可查:

  1. 前往设置 → Git → 工作树
  2. 「工作树磁盘占用」区域列出全部工作树的占用大小、分支、上次使用时间,按来源分类

当项目工作树总占用达到你在设置中配置的阈值时,输入框上方会出现提醒条,可一键前往清理。

清理工作树

清理会删除工作树目录释放磁盘,对话历史与代码变更记录保留。清理时可勾选「保留分支」——只删目录,分支留下,之后仍可从分支找回改动。

入口:设置 → Git → 工作树 → 勾选目标工作树 → 清理所选。

子代理工作树有快照保护:清理前会先把未提交改动存到 lanmate/subagent-* 快照分支,目录删了产出也能从分支找回。

相关设置

设置 位置 说明
清理时默认保留分支 设置 → Git → 工作树 开启后清理确认弹窗默认勾选「保留分支」
磁盘占用提醒(GB) 设置 → Git → 工作树 工作树总占用达到阈值时在输入框提醒;设为 0 关闭