dsh-git-panel
DeepSeek Harness (dsh) plugin: an IDE-style Git panel in the Web GUI — branch/history overview, uncommitted changes with commit & amend, diff stats, and a zsh-style branch marker in the input bar.
一句话定位
DeepSeek Harness (dsh) plugin: an IDE-style Git panel in the Web GUI — branch/history overview, uncommitted changes with commit & amend, diff stats, and a zsh-style branch marker in the input bar.
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add @xbzbing/dsh-git-panel@1.13.2
兼容的 DSH 版本
>=0.1.7-rc.2
作者与热度
xbzbing · ★ 43 · 更新于 2026-11-09
关于这个插件
dsh-git-panel
English | 简体中文
dsh-git-panel 是一个 DSH Web GUI 插件,在对话工作区里提供 IDE 风格的 Git 面板。它把分支列表、提交历史图、未提交变更的提交与 amend、语法高亮的差异对照集中到一个常驻标签页,并在输入框左侧放一个 zsh 风格的分支标记,让你在对话过程中随手查看仓库状态、提交改动,不必切到终端或另开 IDE。
面板只读取当前会话工作目录所在的 Git 仓库,所有 git 命令都以 argv 数组经宿主的 subprocess 服务执行,不拼接 shell 字符串,工作目录锁定在仓库根,并带超时与输出上限。插件默认不改动 git 配置;写入 tracking 配置(branch. .remote / merge)只有三处:你点击「设置上游」(不推送、不联网)、你点击「发布」(git push -u,会联网并在远端创建同名分支),以及从远端分支创建本地分支时 git 的 --track 行为。写操作(提交、amend、暂存、丢弃)都有明确入口。 安装
预发布版本号带 -(如 1.8.0-rc.1),只发 GitHub Release、不发 npm,也不会触发面板里的「有新版本」提示。仓库不提交 lib/,所以不能用 dsh plugin add github:… 安装。
首次安装后,工作区标签栏会直接出现 Git 面板,无需重启或刷新页面。更新时,只改了 client 端的版本立即生效;含 host 端改动的版本需重启 dsh。详情页的配置改动即时生效。 兼容性:已在 dsh@0.2.1-rc.2、dsh@0.2.2-alpha.2 与 dsh@0.2.2-rc.1 上实测,安装、Git 面板、输入框标记、host RPC 与插件详情页均可正常使用。 功能 Git 总览:分支 / 标签列表、提交历史图和提交详情,点文件即看该提交里的差异。历史支持“消息 / 哈希”和“文件 / 路径”两种搜索;文件 / 路径按历史路径做不区分英文大小写的字面子串匹配,文件名和目录片段都可搜,作者、日期、分支筛选继续叠加。该搜索只匹配路径、不搜代码内容,已删除路径仍可命中,改名不会自动追溯旧名。Git 默认的路径历史可能简化部分合并与支线,提交详情仍显示完整文件列表。 变更记录:逐文件或批量暂存、放弃,提交与 Amend,贮藏,增删行统计;列表可切「平铺 / 树形」两种视图(树形按目录折叠、汇总每个目录的变更数,可整目录暂存或放弃,重命名显示旧路径),默认平铺、可在插件配置中改,操作栏尾部的一个图标随时切换(图标即当前视图,空间不足时自动隐藏)。勾选按行记「侧」:只勾暂存侧的那一行就按 index 现有内容提交(不会把工作区未暂存的改动再 git add 进来,git add -p 的部分暂存得以保留),勾工作区侧则按整份文件提交。 常用 Git 操作:切换分支、新建分支(基于分支或提交创建,创建后不切换)、合并分支、拣选提交(cherry-pick),删除本地 / 远程分支(本地未合并时需在确认框中再次勾选强制删除;删除远程分支必须勾选确认)、增删标签、还原 / 重置提交;合并与拣选遇冲突会自动中止并恢复到操作前状态;破坏性操作需二次确认,除删除远程分支外只改本地仓库、不自动推送。没有上游、但有远端已有同名分支且与 HEAD 同提交时,同步按钮会显示「设置上游」:点击后选择一个远端(默认 origin),只写 tracking 配置,不推送也不联网;其余情况才提供「发布」(push -u)。 AI 生成提交信息:参照仓库既有提交风格生成,模型默认跟随当前会话,可在详情页固定。生成会把 diff 内容发送给所选模型的供应商。 输入框 Git 标记:zsh 风格的 ( ),绿色为已同步、橙色为有未提交变更,点击跳转面板。空白对话尚未渲染视图标签栏时,点击改为打开右侧边栏的 Git 页签;侧边栏已展开且其中只有 Git 页时,再次点击收起侧边栏(还有其它页时仍只跳到 Git 页)。侧边栏入口也不可用时会提示先发送第一条消息。 多仓库切换:自动识别 worktree 与子目录里的独立仓库,切换后总览、变更记录和输入框标记都作用于所选仓库;点行切换
面板以 DSH 进程的权限运行,安装前值得知道这些边界: Git 命令:所有 git 命令都经宿主的 subprocess 服务执行——argv 数组、不拼接 shell 字符串、工作目录锁定在仓库根,每条命令带超时与输出上限;不使用 --force 推送或重置,删除本地分支默认走 git 的安全删除(-d),只在确认框中再次勾选强制后才会使用 -D;删除远端分支用 git push --delete 删除 refs/heads/ 下的目标引用,必须勾选确认;合并与拣选只走 git 默认行为(能快进则快进、否则生成合并提交,不加 --no-ff / 变基 / 强制参数),冲突时自动 git merge --abort / git cherry-pick --abort 恢复操作前状态,中止失败会明确报错提示仓库仍在操作中;除「设置上游」、你确认的「发布」(git push -u)和从远端分支创建本地分支(--track)写入 tracking 配置外,不改动 git 配置。 文件访问:只读工作区内的文件(差异、文件浏览、AI 生成的输入),路径经校验并做 realpath 包含检查——软链指向仓库外一律拒绝,.git 不可浏览。插件只有两种写盘动作: 「放弃未跟踪条目」:按你的确认直接删除工作区文件,条目本身是 Git 仓库时整批拒绝。 在文件浏览中编辑已有文件:只限 json yaml yml xml properties md markdown txt toml conf ini cfg 与 .gitignore .gitattributes .editorconfig .env,单个文件不超过 2 MiB、UTF-8 编码,只读文件不可编辑。.env 与 .env.local 等 .env.* 变体可编辑(它们通常含密钥)。保存时先比对文件版本,编辑期间文件被 AI 或其他程序改过就不会直接覆盖;写入经临时文件原子替换,保留换行风格、BOM 与权限位。可在插件配置「基础配置」里关闭。 网络:插件自身只发起一个请求——GET https://api.github.com/repos/ / /releases/latest,用于版本条上的「有新版本」提示(5 秒超时,结果带进程内缓存)。fetch / pull / push / publish / push --delete 只在你点击后经 git 命令联网;「设置上游」只写本地 tracking 配置,不联网。凭据始终由 git 处理;插件不读取、不存储、不返回任何令牌或凭据。 外部服务:只有「AI 生成提交信息」会把 diff 内容发送给你在 DSH 中配置的模型供应商;模型调用由宿主完成,插件不持有凭据。 系统依赖:需要 git CLI;未安装 git 或目录不是 Git 仓库时只显示文件浏览,以当
客户端 b
相似插件
open-design
Local-first design product: detects your installed code-agent CLI, runs design skills + design systems, streams artifact…
huashu-design
花叔Design:用HTML做高保真原型、幻灯片、动画与可视化,导出PDF和可编辑PPTX。
dsh-web
DeepSeek Harness Web GUI 插件全家桶。皮肤、宠物与社区插件索引已拆分为独立仓库(dsh-skins / dsh-pet / dsh-community-plugins),本仓通过 npm 包内置它们。