前言¶
在 DSH Web 中,Chat 和 Trajectory 主要面向会话与执行轨迹。查看当前工作区的 Git 历史时,常见做法是切到终端或浏览器里打开另一个 Git 图形化工具。
WhitePlusMS/dsh-git-graph 是一个 DSH Web 插件,它在 Chat 和 Trajectory 旁提供专用的 Git Graph 入口,用于查看当前工作区的 Git 历史。刷新该视图时,不会创建会话消息或 tool trace 条目。
这是什么¶
dsh-git-graph 的仓库路径是 WhitePlusMS/dsh-git-graph,许可证为 MIT,当前可安装版本为 v0.0.2。
它解决的问题很具体:在 DSH Web 中直接查看当前会话工作区的 Git 提交拓扑、分支引用、提交详情、文件变更和未提交变更。
当前发布版本是只读的。它不创建、删除、重命名、合并、rebase、push、pull、fetch、创建 tags、stash 或 reset Git 数据。
核心功能¶
提交拓扑与引用¶
插件在 Web 界面中显示 Git Graph,包括:
- 提交拓扑;
- 分支关系;
- 合并关系;
- 父提交关系;
- 本地分支;
- 远程分支;
- 标签;
- HEAD 引用标签。
图头会显示当前工作区状态:clean 或 dirty。
搜索、过滤与排序¶
插件支持对提交进行全范围搜索,搜索范围包括:
- commit hash;
- subject;
- author;
- email;
- reference name;
- date。
也支持以下过滤和排序能力:
- 分支名 glob 过滤;
- 引用类型过滤;
- 包含所有 refs 选项;
date排序;author-date排序;topological排序;first-parent模式。
结果内查找栏支持大小写、正则,以及上一项、下一项导航。
提交详情与文件 diff¶
选择某个提交后,可以在提交行下方内联展开详情,包括:
- hash;
- author;
- committer;
- date;
- parents;
- 签名状态;
- references。
文件变更支持 tree 或 list 视图,并显示:
- 变更类型着色;
- 添加或删除统计。
点击文件后,可以查看逐行 diff,包括旧行号、新行号和增删高亮。
未提交变更、比较与显示设置¶
插件还包含这些入口:
- 展开
Uncommitted Changes,检查工作区文件和逐文件 diff; - 比较任意两个提交之间的文件变更;
- 元数据条列出仓库 tags 和 stashes;
- 显示设置面板,包括日期列、作者列、hash 列、日期格式和图样式,并按仓库持久化;
- 键盘快捷键:上下箭头移动选择、
Ctrl+F查找、Ctrl+Shift+F打开设置; - 按需加载更多提交,最多 500 提交。
当前目录不是 Git 仓库,或仓库没有提交时,页面显示空状态,而不是仓库错误。
安装与启用¶
下面介绍安装、重启和卸载步骤。
1、安装或更新¶
从 GitHub 安装 v0.0.2:
dsh plugin --profile web add https://github.com/WhitePlusMS/dsh-git-graph/archive/refs/tags/v0.0.2.tar.gz
这条命令用于安装,也可以用于更新现有安装。
2、重启 DSH Web¶
安装或更新后,需要重启 dsh web,以便 Host 入口和浏览器客户端加载新版本。
3、打开 Git Graph¶
在 DSH Web 打开后,点击视图切换器中 Chat 和 Trajectory 旁的 Git Graph。
4、卸载¶
如需移除,使用:
dsh plugin --profile web remove dsh-git-graph
典型用法¶
查看当前工作区 Git 历史¶
安装并重启 DSH Web 后,从视图切换器进入 Git Graph。页面读取当前会话工作区,并展示当前仓库的提交拓扑、引用和变更内容。
使用模型工具参数¶
插件提供模型工具参数,常用参数如下:
git_graph({
path?: string, // Repository directory; defaults to the current session workspace
max_commits?: number, // 1..500, defaults to 100
all?: boolean, // Include all reachable refs, defaults to true
first_parent?: boolean, // Follow only the first parent, defaults to false
glob?: string[], // Branch-name glob filters
search?: string, // Full-range search: hash, subject, author, email, ref name, date
sort?: string // Commit ordering: date, author-date, or topological; defaults to date
})
参数默认值:
max_commits范围为1到500,默认100;all默认true;first_parent默认false;sort默认date。
刷新与空状态¶
刷新当前仓库时,不会渲染为会话工具卡片,也不向 trajectory 追加刷新事件。
如果当前目录不是 Git 仓库,或仓库没有提交,页面显示空状态。
适用场景与注意¶
适合这类使用场景:
- 在 DSH Web 中查看当前工作区的 Git 历史;
- 查看提交拓扑、分支、远程分支、标签和 HEAD 引用;
- 查看某个提交的父提交、作者、提交者、日期和签名状态;
- 查看文件变更、逐行 diff、未提交变更和提交间差异;
- 希望刷新 Git Graph 时不产生会话消息或 tool trace 条目。
使用注意:
- 当前发布版本只读,不修改 Git 数据;
- Host 通过固定 subprocess 参数读取 Git 数据,不使用 shell;
path仅作为 Git 子进程工作目录,不会插入 shell 命令;- 文件读取请求被验证保持在仓库内;
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证; - 许可证为 MIT;
- 这里的目录页是 DSH 社区插件目录,不等同于官方应用商店。
链接¶
- 目录页:https://www.skillhub.cn/plugins/WhitePlusMS/dsh-git-graph
- GitHub:https://github.com/WhitePlusMS/dsh-git-graph