前言¶
DeepSeek Harness (DSH) 的插件化架构允许开发者扩展 Web 端能力。在本地开发过程中,频繁切换终端查看 Git 状态或查看提交历史会影响效率。@wongzexu/dsh-git-status 插件直接在 DSH Web 界面右侧提供 Git 状态浮窗,将 commit DAG 泳道图、未提交改动、stash 以及分支操作集成到编辑器或对话界面的侧边,减少上下文切换。
是什么¶
@wongzexu/dsh-git-status 是一个独立运行的 Git 状态插件,专为 DSH Web 端设计。它通过右缘浮窗展示 Git 仓库状态,核心能力包括 commit DAG 泳道图渲染、未提交改动分类、stash 管理、行内 diff 查看以及完整的分支/远程操作。
插件由 Wongzexu 维护,基于 MIT 许可证开源,零第三方依赖(无 React、无构建产物依赖)。
安装与依赖¶
使用该插件前,需确保环境满足以下条件:
1. DSH web 端已安装并运行。
2. 系统已安装 git 命令行工具(插件通过系统 git 执行所有操作)。
安装插件:
dsh plugin --profile web add @wongzexu/dsh-git-status
启用插件:
1. 重启 DSH web 服务。
2. 打开 DSH Web 页面,进入设置页的“插件”面板,确认 @wongzexu/dsh-git-status 已启用。
核心功能¶
该插件提供以下主要功能:
-
浮窗交互
面板支持拖拽移动,位置会自动记忆。右上角设有悬浮开关按钮,关闭后可重新展开。 -
Commit DAG 泳道图
使用网格制 SVG 渲染。第一父链成线,列分配采用贪心最左算法,泳道支持复用。合并提交会有连线,HEAD 处显示加粗圆点。 -
Refs 徽标
显示 HEAD(游离)、分支(金色)、远程(蓝色)、标签(绿色)。支持同名本地/远程分支合并显示,或同一分支有多个远程时的计数折叠。 -
未提交改动虚拟行
当工作区有改动时,图顶部会插入虚拟行,用空心圆和灰色虚线连接 HEAD。分类显示未暂存和已暂存的文件处数,点击展开详情。 -
暂存与提交
提供暂存全部、贮藏未提交改动、放弃全部未提交(包含未跟踪文件)的操作。支持提交已暂存内容或修订上一条提交,多行提交信息使用快捷键提交。 -
Stash 显示与操作
stash 节点以双层圆和徽标显示在图中。支持展开详情、应用、弹出、从 stash 创建分支及删除操作。 -
行内展开详情
点击 commit 行可展开提交信息、变更文件列表及逐文件的 diff 详情。 -
分支操作
右键本地分支徽标可进行切换、合并(支持 NoFF/Squash)、重命名、删除(含强制删除)。支持变基、重置到指定提交、创建 tag。 -
远程操作
支持一键拉取所有远程仓库(git fetch --all)。右键远程分支可创建本地分支并检出,或进行删除操作。推送支持 normal、force-with-lease 和 force 模式。 -
冲突处理
显示未解决冲突以及合并/rebase 进行中的状态。提供中止/继续操作入口。 -
即时刷新
通过 SSE 订阅/git/events实现即时刷新,断连时自动切换至 10s 轮询兜底。
使用方法¶
安装并启用后,进入任意聊天视图:
-
展开浮窗
点击面板右上角外侧的分支图标按钮,展开「Git 状态」浮窗。 -
查看详情
点击 commit 行可展开查看提交信息和 diff;右键 stash 徽标可应用或删除;右键 commit 行可创建 tag 或在该提交基础上创建分支。 -
分支与远程操作
右键本地分支徽标可进行切换、合并、变基、重命名或删除。右键远程分支徽标可创建本地分支或拉取合并。点击浮窗头部的「⇣」按钮可一键拉取所有远程仓库。 -
处理未提交改动
右键未提交改动虚拟行可暂存全部、贮藏改动或放弃全部未提交。右键 stash 徽标可应用、弹出或删除。
注意事项¶
- 包名区分:npm 上存在同名但无作用域的包
dsh-git-status(非本插件),安装时请认准@wongzexu/dsh-git-status。 - 环境依赖:插件依赖当前 DSH 进程所在的 git 仓库。如果当前会话不是 git 仓库,浮窗会显示提示,需切换到仓库目录所在的会话。
- 权限与安全:插件通过系统 git 执行写操作,请确保在可信环境中使用。
总结¶
@wongzexu/dsh-git-status 通过可视化浮窗将 Git 基础操作直接集成到 DSH Web 界面中,减少了开发者查看状态和执行常规 Git 命令的步骤。对于需要在 DSH 环境下进行高频 Git 操作的开发者,该插件提供了较为完整的 CLI 能力替代方案。