前言¶
在 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)已随安装包提供。
- 仓库:yoggu/dsh-git-graph
- 社区目录:SkillHub 插件页
- 许可证:MIT(见仓库
LICENSE) - 当前资料中的发布版本:
v0.1.3(package.json中version为0.1.3)
核心功能¶
下列能力均来自项目 README 与 package.json 描述,未在资料中出现的功能不写进正文。
- 提交图与元数据:在侧栏查看 Git 历史图,并查看单次提交的详情。
- 工作区与 diff:查看 staged/unstaged 变更;diff 视图既可用于历史提交,也可用于智能体尚未提交的改动。
- 分支、标签、stash:在面板内浏览 branch、tag、stash。
- 版本比较:比较不同 revision。
- Git 操作:写操作(如 commit、checkout、reset、stash、push、pull)由用户发起并在确认对话框中确认;Fetch 会读取已配置的 remote,且不需要确认。请求 force push 时使用
--force-with-lease。 - 语法高亮: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