dsh-git-graph:在 DSH Web 侧栏里看 Git 历史与工作区差异

前言

在 DeepSeek Harness(DSH)里跑智能体时,工作区里的提交、分支和未提交改动往往分散在终端命令和外部 Git 客户端之间。要在不离开 Web 界面的前提下浏览提交图、对比版本、查看暂存/未暂存 diff,并在确认后执行部分 Git 操作,需要把能力挂到 DSH 的客户端侧栏。dsh-git-graph 是维护者 yoggu 发布的 客户端 插件,面向 DSH Web 右侧边栏,把 Git 历史与工作树变更以图形和 diff 形式集中展示。

这是什么

dsh-git-graph 在 DSH Web 右侧边栏提供 Git 图:可浏览 commit、branch、tag、stash,检查 staged/unstaged 变更与 diff,比较 revision,并通过确认对话框执行选定的 Git 操作;面板打开时,Git 目录的变更会自动刷新视图。插件无需 API key,浏览器端 bundle(client.js)已随安装包提供。

核心功能

下列能力均来自项目 README 与 package.json 描述,未在资料中出现的功能不写进正文。

  1. 提交图与元数据:在侧栏查看 Git 历史图,并查看单次提交的详情。
  2. 工作区与 diff:查看 staged/unstaged 变更;diff 视图既可用于历史提交,也可用于智能体尚未提交的改动。
  3. 分支、标签、stash:在面板内浏览 branch、tag、stash。
  4. 版本比较:比较不同 revision。
  5. Git 操作:写操作(如 commit、checkout、reset、stash、push、pull)由用户发起并在确认对话框中确认;Fetch 会读取已配置的 remote,且不需要确认。请求 force push 时使用 --force-with-lease。
  6. 语法高亮:diff 以转义文本渲染;语法高亮在本地 bundle 内,不从 CDN 加载。

安装与启用

安装命令须使用资料原文。将 tagged GitHub release 安装到 DSH Web profile:

dsh plugin --profile web add 'https://github.com/yoggu/dsh-git-graph.git#v0.1.3'

若实际运行的 profile 不是 web,将命令中的 --profile web 换成你正在使用的 profile。必要时重启 DSH Web,刷新页面后,在右侧边栏的标签菜单中选择 Git graph。

卸载:

dsh plugin --profile web remove dsh-git-graph

或下载源码并 link 本地 checkout(浏览器 bundle client.js 已包含,安装无需 build;link 期间需保留该目录):

git clone --branch v0.1.3 --depth 1 https://github.com/yoggu/dsh-git-graph.git
cd dsh-git-graph
npm install --omit=dev --ignore-scripts
dsh plugin --profile web add "link:$(pwd)"

运行环境(来自 package.json 的 engines):

  • Node:>=22.19.0
  • DSH:^0.1.7-rc.2 || ^0.2.0-rc.1

典型用法

1. 打开 Git 面板

完成安装并刷新 DSH Web 后,在右侧边栏标签菜单选择 Git graph。当前选中的仓库名称会显示在图上方,并在操作确认文案中出现。

2. 选择仓库

Git 面板初始只列出已注册的 DSH workspace 文件夹,当前 workspace 排在最前。可以:

  • 直接选中某个 workspace 下的 Git 仓库;
  • 点击文件夹旁的箭头,逐层展开子文件夹,直到嵌套仓库、worktree 或已初始化的 submodule。

没有递归后台扫描;搜索只过滤已加载的文件夹。切换仓库只影响 Git 面板,Files、终端、当前 DSH workspace 与会话目录不变;Diff 与比较标签页保留打开时的仓库。同一会话内会记住所选仓库,浏览器整页刷新后不保留。

文件夹浏览会跳过依赖目录与子 symlink;子目录仅在展开父目录时读取。可用刷新按钮重新加载 workspace 根与已打开分支。不支持 bare 仓库。

3. 查看 diff 与执行操作

在面板内浏览提交图与变更,按需打开 diff 或 revision 比较。需要写入 Git 的操作在确认后再执行;Fetch 会直接读取 remote 配置。

适用场景与注意

适合谁:主要在 DSH Web 里开发、希望侧栏内完成「看历史 + 看未提交 diff + 少量经确认的 Git 操作」的开发者;已把多个 workspace 注册进 DSH、需要在不切换会话目录的情况下查看其他 workspace 仓库的用户。

安全与权限(务必阅读):

  • 插件以当前 DSH 进程权限运行;对插件已认证 API 的访问,在资料表述上相当于可对「所有已注册 DSH workspace、会话目录及其子目录、以及包含该会话的仓库」施加 Git 控制。安装前应阅读源码与 MIT 许可证,并理解 Cordis patch 与客户端 bundle 的行为。
  • 即使普通 status 类读取也会读仓库本地 Git 配置;core.fsmonitor、hooks、filters 等可能执行外部程序。Fetch、push、pull 使用配置的传输方式并可能连接外部主机。不要在不可信 Git 配置的仓库上打开或操作该图。
  • 破坏性操作可能丢弃工作;写操作均有确认,但操作前仍应自行备份或确认工作区状态。

DSH 生态强调「一切皆插件」;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-git-graph 把 Git 历史图、提交详情与工作区 diff 收进 DSH Web 右侧边栏,并在确认流程下支持部分 Git 写操作,适合在 Harness 会话旁快速核对智能体改动与仓库状态。安装以 tagged release 的 dsh plugin --profile web add 命令为准;细节与安全说明见仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/yoggu/dsh-git-graph
  • GitHub:https://github.com/yoggu/dsh-git-graph
羽毛球分组比赛记分
小程序二维码

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

小夜