前言¶
在 DeepSeek Harness(DSH)里做智能体或日常开发时,会话往往绑定一个工作目录;同一仓库又可能通过 git worktree 拆出多棵并行工作树,分支与合并关系在终端里要靠多条命令拼起来看。DSH 社区插件可以扩展客户端界面,把这类信息收进侧栏,而不必离开当前会话。下面介绍 LeonZ666 维护的客户端插件 dsh-gitworktree-gui(发现页常显示为「Git 工作树面板」):在一个右栏面板里汇总当前工作树状态、分支/合并拓扑、其余 worktree、未提交改动与文件树,并强调只读——不 checkout、不切目录、不提交。
这是什么¶
dsh-gitworktree-gui 是面向 DeepSeek Harness 的 客户端(Web)插件,npm 包名同为 dsh-gitworktree-gui。简介(与仓库 package.json 一致):Git worktree panel for DeepSeek Harness: branch/merge topology, worktrees, changes and file tree.
维护者:LeonZ666。许可证:MIT。当前资料中的包版本为 0.7.0(以你安装时 npm view 或市场条目为准)。分类属于 DSH 插件目录中的客户端类;社区目录站点与 DeepSeek / 幻方无官方从属关系,安装来源以维护者公布的索引或 npm 为准。
插件要求宿主 engines.dsh >= 0.2.1-rc.2,不满足时安装会被拒绝并回滚。
面板里有什么¶
README 将面板分为三层,便于对照界面:
顶部 · 当前工作树:显示路径、分支(detached 时为 detached @ <sha>)、↑ahead ↓behind、clean / dirty / conflict,以及本地分支、远程分支、Worktree 数量。
中部 · 分支拓扑:主干为一条直线,分支向右生长,合并后收回主干;选中一条线会高亮整条路径。
底部 · 详情与列表:点击提交、分支或工作树查看详情;其余 worktree、CHANGES、FILES 也在此区域。文件行可点开预览;点提交可看到完整消息、改动文件列表与单文件 diff。
核心能力与边界¶
能做什么(已文档说明)
- 从会话头部打开 Git 面板,默认读取当前会话目录对应仓库。
- 在 WORKTREES 中切换「正在查看哪棵树」——仅改变面板视角,不执行 checkout,也不改变聊天的工作目录;可用「返回会话工作区」回到默认目录。
- 浏览分支拓扑、提交详情、工作树 HEAD/上游与 dirty 文件数;在 CHANGES / FILES 中打开文件,侧边栏新开 tab 显示内容。
- 关闭 Git 面板标签页即停止轮询。目录尚未
git init时会提示;初始化后点「已初始化,重新读取」。插件不会替你初始化或修改仓库。
明确不做的事(只读)
不提交、不切分支、不合并、不删除工作树、不初始化仓库。Git 调用通过固定参数的 execFile,不拼 shell;DSH 路由仅接受 loopback,显式路径受 allowedRoots 限制。采集上限为 120 个提交 / 700 个文件(提交详情 300 个文件,单文件 diff 128 KiB / 1200 行);读取失败会保留旧快照并标记过期,而不是显示成干净状态。
安装与启用¶
插件以当前 DSH 进程权限运行,安装前建议查看仓库源码与 MIT 许可证。下列命令均来自官方 README,请按你的环境(CLI profile 或桌面端)选用其一。
从插件市场(推荐)¶
- 打开 插件 → 实验性插件 → 更多 → 自定义插件市场,添加索引源:
https://leonz666.github.io/dsh-gitworktree-gui/market/index.json
- 在 发现 里搜索「Git 工作树面板」并安装。
从 npm 安装(DSH CLI)¶
需要本机有 dsh 与 pnpm;命令会把参数转发给 profile 目录里的 pnpm,从 npm 解析包:
npm view dsh-gitworktree-gui version # 查看最新版本,可选
dsh plugin --profile <profile> add dsh-gitworktree-gui
dsh plugin --profile <profile> add dsh-gitworktree-gui@<版本> # 固定版本
说明:桌面端 profile 由 Electron 管理,请用插件页或 plugin_manager;CLI 的插件管理请求不作用于桌面端 profile。
在 DSH 里直接安装¶
在插件页或 plugin_manager 工具中:
plugin_manager action=install_bundle target=dsh-gitworktree-gui
target 还可为:
git+https://github.com/LeonZ666/dsh-gitworktree-gui.git(不要用github:简写,匿名用户会走 SSH)/绝对路径/dsh-gitworktree-gui-<版本>.tgz(仓库根执行npm pack)/绝对路径/dsh-gitworktree-gui(本地源码link:安装)
装好后刷新 Web 页面;若改过宿主入口 index.js / lib/,需要重开 DSH。
更新与卸载(同名包更新时先卸载再装):
plugin_manager action=set_bundle target=dsh-gitworktree-gui enabled=false
plugin_manager action=remove_bundle target=dsh-gitworktree-gui
典型用法¶
- 点会话头部右上角的 Git 图标,面板作为右栏标签打开。
- 确认顶部条中的路径、分支与 clean/dirty 状态是否符合当前会话工作区。
- 需要对比另一棵 worktree 时,在 WORKTREES 中点选;看完用「返回会话工作区」。
- 在拓扑上点分支线段看路径,点提交看 message 与 diff;在 CHANGES / FILES 中点文件行预览内容。
- 仓库刚
git init后,按提示点「已初始化,重新读取」。
适用场景与注意¶
适合:已在 DSH 中长时间对话、需要同时看清多 worktree、分支合并关系与未提交改动,且希望不离开会话、不触发 Git 写操作的开发者。
注意:面板是观察层,不能替代终端里的 checkout、merge 或 worktree 管理。多仓库或超大仓库会受提交/文件/diff 上限影响,过期快照需结合终端 git status 判断。README 提到在 Codex 和 Claude 上也可安装,适配入口见仓库 codex/ 与 hooks/;DSH 为本插件的主要宿主场景。
结尾¶
dsh-gitworktree-gui 把分支拓扑、worktree 列表、改动与文件树收进 DSH 右栏,用只读方式降低「会话目录 vs 其它工作树」的认知成本。目录页:https://www.skillhub.cn/plugins/LeonZ666/dsh-gitworktree-gui;源码与完整说明:https://github.com/LeonZ666/dsh-gitworktree-gui。