前言¶
用 DeepSeek Harness(DSH)做 AI 编程或 Agent 开发时,版本管理往往要切到终端、独立 Git 客户端或 IDE 才能看清提交历史、分支关系和工作区改动。上下文一断,对话里的代码讨论和仓库状态就对不上。
dsh-git-graph 是 DSH Web GUI 的客户端插件,把提交历史图、分支过滤、文件 diff 和 VSCode 风格的未提交改动面板直接嵌进会话页。下面介绍它做什么、怎么装、日常怎么用。
这是什么¶
dsh-git-graph 由维护者 1841220388zzzcccxxx-star 开源,当前版本 0.11.0,协议为 MIT。插件在 DeepSeek Harness 对话界面内提供嵌入式 Git 仓库可视化:查看提交历史、管理分支、对比 diff、处理工作区改动,无需离开当前会话。
挂载位置在会话页的「Git 图谱」标签,位于「轨迹」标签旁。打开哪个对话,默认就显示该对话工作区对应的 git 仓库;非 git 仓库的对话会显示空态提示。
核心功能¶
提交历史与分支¶
提交列表采用 GitHub 风格布局,本地分支与远程分支分组展示,支持折叠与着色。分支过滤通过勾选控制:勾选则显示该分支,不勾则完全隐藏;全部不勾选时列表为空。
提交行可点击查看详情,包含提交信息、文件变更列表和单文件 diff。Ctrl+点击可选中两次提交进行对比。提交详情内支持查看单个文件的历史提交。
大仓库采用分页加载,每页 200 条,可继续加载更多。
跟随对话与多仓库¶
图谱默认跟随当前对话的工作区。v0.11 起支持顶栏「打开」或空态中的「打开文件夹」:可浏览磁盘(驱动器到目录逐层进入,带 git 标记),选择任意文件夹查看其版本管理。添加过的仓库会持久保存,顶部下拉可随时切换。
可选配置 config.repo 或 config.repos 作为初始可访问仓库白名单;不配置也能用。运行中由会话工作区发现的仓库也会自动加入可访问集合。
未提交改动¶
图谱顶部常驻 VSCode 风格的未提交改动面板,分为已暂存、更改、未跟踪三组。每行显示状态徽标(A/M/D/R/U/?)、增减行数,点击可展开单文件 diff(含语法高亮)。重命名显示为「旧 → 新」,未跟踪文件可直接查看内容。
行内支持暂存、取消暂存、还原;顶栏支持全部暂存与提交。勾选复选框可批量暂存、取消暂存、还原、忽略或提交选中项,破坏性操作前会弹确认框。提交对话框内可依据 diff 由 AI 生成候选提交信息,可编辑后提交。
远程与分支操作¶
顶栏提供拉取(git fetch)与推送(git push 当前分支,确认后执行)。分支组标题右键:本地分支可切换、推送、删除(已合并才可删,HEAD 受保护);远程分支可拉取、复制远程分支名。远程分支组头始终显示,并标注「已同步」或「已包含」状态。
提交行右键支持复制哈希或消息、查看详情、打标签、从提交新建分支、打开 GitHub 提交页、复制仓库路径、在文件管理器中打开。
交互与状态¶
常用快捷键:Ctrl+F 搜索、Ctrl+/ 快捷键面板、Ctrl+B 折叠或展开全部分支组、↑↓/j/k 导航、Enter 查看详情、Esc 关闭。
页面可见时每 5 秒自动监听工作区改动与新增提交。分支过滤、分组开关、面板折叠状态、主题等会本地保存,刷新后保留(v0.8 起键统一为 gg2-*)。
主题支持自动跟随、深色、浅色,以及 8 种风格方案。打开图谱时会静默检查 GitHub 最新版本,发现新版本时顶栏提示,可一键下载替换(自动备份旧版,失败回滚),重启后生效。
安装与启用¶
DSH 生态采用「一切皆插件」的思路;SkillHub(https://www.skillhub.cn)是社区插件目录,与 DeepSeek、幻方无官方从属关系。安装前建议阅读插件源码与 MIT 许可证。插件以当前 dsh 进程权限运行,可访问其能读写的路径与 git 仓库。
1. 把插件加入 profile¶
编辑 DSH web profile 的 package.json,添加依赖:
{
"dependencies": {
"dsh-git-graph": "file:./plugins/git-graph"
}
}
plugins/git-graph 为插件源码目录,按实际路径调整。
2. 挂载 bundle¶
在 profile 的 cordis.patch.yml 中加入:
- insert:
- id: git-graph
name: dsh-git-graph
config:
repo: "C:/path/to/your/repo"
config.repo / config.repos 为可选的初始仓库白名单;不配置时可通过图谱页「打开」随时添加。
3. 安装并重启¶
pnpm install
然后重启 dsh web(或使用一键重启脚本)。打开 http://127.0.0.1:3080 ,在任意会话页点击「Git 图谱」标签即可使用。
典型用法¶
| 操作 | 说明 |
|---|---|
| 会话页「Git 图谱」标签 | 查看当前对话工作区的提交与改动 |
| 顶栏「打开」或空态「打开文件夹」 | 浏览磁盘,选择其他 Git 仓库并加入列表 |
| 顶部仓库下拉 | 在已添加的多个仓库间切换 |
| 分支组标题 | 折叠或展开该分支下的提交 |
| 分支过滤勾选框 | 控制哪些分支出现在列表中 |
| 图谱顶部「未提交改动」 | 查看暂存/更改/未跟踪,展开 diff,执行暂存或提交 |
| 提交行 | 点击查看详情;Ctrl+点击与另一提交对比 |
| 提交行右键 | 复制、打标签、新建分支、打开 GitHub 提交页等 |
| 顶栏拉取 / 推送 | 执行 git fetch 或 push 当前分支 |
| 底部状态栏「未提交改动」 | 点击滚动到顶部改动区块 |
| 刷新 | 重新加载仓库数据 |
开发时,服务端 index.js 改动需重启 dsh web;页面 web/index.html 改动刷新即生效。Windows 下可用 sync-deploy.ps1 同步到 node_modules/dsh-git-graph/。
适用场景与注意¶
适合在 DSH 内做 AI 编程、希望同一界面看清提交历史、分支与工作区改动的开发者。需要比纯命令行更直观的 Git 可视化、又不想频繁切换外部客户端时,这个插件能补上缺口。
注意:插件依赖本机已安装的 git,并通过 DSH 进程调用;对仓库的读写在当前用户权限下进行。远程推送、删除分支、还原文件等操作会改动仓库,执行前留意确认框。自动更新会从 GitHub 拉取新版本替换本地插件文件,若环境受限可关闭或手动管理版本。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/1841220388zzzcccxxx-star/dsh-git-graph
- GitHub 仓库:https://github.com/1841220388zzzcccxxx-star/dsh-git-graph
在 DSH 会话里把 Git 状态留在视线内,能减少切工具的成本;按上文步骤安装后,从「Git 图谱」标签即可开始用。