dsh-gitworktree-gui:在 DSH 侧栏只读查看 Git 工作树、分支拓扑与改动

前言

在 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。

核心能力与边界

能做什么(已文档说明)

  1. 从会话头部打开 Git 面板,默认读取当前会话目录对应仓库。
  2. 在 WORKTREES 中切换「正在查看哪棵树」——仅改变面板视角,不执行 checkout,也不改变聊天的工作目录;可用「返回会话工作区」回到默认目录。
  3. 浏览分支拓扑、提交详情、工作树 HEAD/上游与 dirty 文件数;在 CHANGES / FILES 中打开文件,侧边栏新开 tab 显示内容。
  4. 关闭 Git 面板标签页即停止轮询。目录尚未 git init 时会提示;初始化后点「已初始化,重新读取」。插件不会替你初始化或修改仓库。

明确不做的事(只读)

不提交、不切分支、不合并、不删除工作树、不初始化仓库。Git 调用通过固定参数的 execFile,不拼 shell;DSH 路由仅接受 loopback,显式路径受 allowedRoots 限制。采集上限为 120 个提交 / 700 个文件(提交详情 300 个文件,单文件 diff 128 KiB / 1200 行);读取失败会保留旧快照并标记过期,而不是显示成干净状态。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议查看仓库源码与 MIT 许可证。下列命令均来自官方 README,请按你的环境(CLI profile 或桌面端)选用其一。

从插件市场(推荐)

  1. 打开 插件 → 实验性插件 → 更多 → 自定义插件市场,添加索引源:
https://leonz666.github.io/dsh-gitworktree-gui/market/index.json
  1. 在 发现 里搜索「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

典型用法

  1. 点会话头部右上角的 Git 图标,面板作为右栏标签打开。
  2. 确认顶部条中的路径、分支与 clean/dirty 状态是否符合当前会话工作区。
  3. 需要对比另一棵 worktree 时,在 WORKTREES 中点选;看完用「返回会话工作区」。
  4. 在拓扑上点分支线段看路径,点提交看 message 与 diff;在 CHANGES / FILES 中点文件行预览内容。
  5. 仓库刚 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye