前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在本地开发与智能体协作中,管理多个分支和会话上下文往往需要频繁切换工作目录,这会打断会话的连续性。dsh-worktree 插件通过在 DSH Web 客户端中集成 Git 工作树管理,解决了这一问题。它允许在隔离的分支环境中运行会话,而无需手动管理文件夹。
这是什么¶
该插件由 navid-kianfar 维护,旨在为 DeepSeek Harness Web 客户端提供分支和工作树切换功能。它将 Git 工作树直接作为 Harness 工作区使用,允许在新建会话时基于消息生成新分支并创建工作树,或在活跃会话中切换、管理分支与工作树。
核心功能¶
该插件提供以下核心能力:
- 新建会话工具栏集成:在新建会话界面,编辑器上方新增了项目切换器、模式芯片和一个分支胶囊。分支胶囊包含一个“工作树”复选框,用于控制当前会话是否基于工作树运行。
- 工作树模式与会话创建:勾选工作树复选框后,首次发送消息时,系统会基于消息内容生成新分支名称(或使用消息 slug,若模型不可用),在指定路径创建新的 Git 工作树,并将该工作树注册为 Harness 工作区。
- 分支与工作树管理:在活跃会话中,编辑器上方显示当前分支状态(ahead/behind)、未提交更改(圆点)及工作树数量。支持切换、创建、重命名、删除分支,以及打开、锁定/解锁、删除工作树。
- Git 命令集成:提供 Fetch and prune remotes 和 Prune stale records 功能,分别执行
git fetch --all --prune和git worktree prune。
安装与启用¶
该插件依赖以下环境:
- DeepSeek Harness:版本 0.1.5-rc.2 (web profile)。
- Git:宿主机安装 Git 2.23+ (2.36+ 用于显示 locked/prunable 标志)。
- pnpm:宿主机需安装 pnpm。
安装与启用方式请参考插件目录或官方提供的源码安装指引。
典型用法¶
- 创建基于工作树的新会话:在新建会话界面,勾选分支胶囊中的“工作树”复选框。选择一个基础分支,输入消息并发送。系统将自动生成分支名、创建工作树并在其中运行会话。
- 管理分支与工作树:在运行中的会话中,编辑器上方会显示分支和工作树状态。点击该胶囊可切换分支、创建新工作树或执行修剪操作。
- 执行 Git 命令:在分支或工作树弹窗中,可使用 Fetch and prune remotes 或 Prune stale records 命令清理远程和过期记录。
适用场景与注意¶
- 适用场景:适合需要为不同任务维护独立分支环境、在主仓库保持干净的同时进行实验性开发或并行处理的开发者。
- 注意事项:
- 浏览器不直接运行 Git 命令,所有操作通过宿主进程执行。
- 删除工作树不会自动取消注册的工作区,需手动在侧边栏移除。
- 该插件许可证为 MIT,使用前请检查源码。
总结¶
该插件通过将 Git 工作树机制与 DSH 会话管理深度绑定,实现了会话与分支环境的隔离与切换。对于需要在本地进行多分支协作的开发者,它提供了更直观和高效的操作方式。