xia-sc/dsh-git
DeepSeek Harness Web GUI 的完整 Git 管理插件,形态为一个可折叠的悬浮面板, 实时跟随当前会话的工作区——在侧边栏点击不同的会话/工作区,面板会瞬间 重新绑定到对应仓库。 支持的工作流: 分支切换 · 拉取更新(fetch) · 拉取合并(pull,仅快进) · 暂存全部 · 提交(commit,可用 AI 起草提交信息) · 推送(push) · 状态(status) · 最近提交 · 未提交文件列表 · 点击变更看差异 · 基于某分支新建分支。
Project Overview项目介绍
xia-sc/dsh-git is a native Git management plugin built exclusively for the DeepSeek Harness Web GUI. It delivers full Git functionality via a collapsible floating panel that automatically rebinds to the correct Git repository when you switch between different workspaces or sessions in DSH. You can install it from the official npm registry or directly from the GitHub source code using the dsh command line tool, and you will need to restart dsh web after installation for the plugin to take effect.
This plugin supports all common Git workflows including switching branches, fetching updates, fast-forward only pulling, staging all changes, committing, pushing, checking repository status, viewing recent commits, viewing diffs for changed files, and creating new branches from an existing base. It can also call the AI model of your current DSH session to automatically generate a commit message for you. It is ideal for developers who want to complete routine Git tasks without leaving the DSH Web GUI and switching to an external command line tool.
This is a dual-sided npm package: the host side is a Cordis plugin that only depends on Node.js built-in modules and @deepseek-ai/cordis, and the browser side only depends on React with no extra third-party dependencies. It is released under the permissive MIT open source license, it relies on your system Git credentials for all push and pull operations and never stores or accesses your credentials itself. AI commit message generation only sends the required diff to your model when you explicitly click the generate button, so there is no unsolicited network activity from the plugin.
xia-sc/dsh-git 是专为 DeepSeek Harness Web GUI 开发的原生 Git 管理插件,以可折叠悬浮面板形态提供完整的 Git 操作能力。它会实时跟随当前会话的工作区切换,切换不同会话或工作区时会自动重新绑定到对应 Git 仓库。插件支持通过 dsh 命令行安装,官方 npm 源和 GitHub 源码两个渠道同源,安装后需重启 dsh web 才能生效。
它支持分支切换、拉取更新、快进式拉取合并、暂存全部、提交、推送、查看仓库状态、查看最近提交、展示未提交文件列表、点击变更查看差异、基于已有分支新建分支等常用 Git 工作流,还支持调用当前会话的 AI 模型自动生成提交信息。适合需要在 DSH Web GUI 内直接完成日常 Git 操作,不需要切换到外部命令行工具的开发者使用。
这个插件是双面 npm 包,宿主端是 Cordis 插件,仅依赖 Node.js 内置模块和 @deepseek-ai/cordis,浏览器端仅依赖 React,没有额外的第三方依赖。它采用 MIT 许可开源,所有 Git 操作依赖系统 Git 凭据,插件不触碰凭据存储,AI 生成仅在用户点击后才发送 diff 给模型,不会擅自联网。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-git(xia-sc/dsh-git)
仓库:https://github.com/xia-sc/dsh-git
本站详情页:https://www.yhbd.top/plugins/xia-sc-dsh-git/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 2 · 最近提交 2026-09-24 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add @xia-sc/dsh-git
把 xia-sc/dsh-git 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
@xia-sc/dsh-git
English | 中文
DeepSeek Harness Web GUI 的完整 Git 管理插件,形态为一个可折叠的悬浮面板, 实时跟随当前会话的工作区——在侧边栏点击不同的会话/工作区,面板会瞬间 重新绑定到对应仓库。
支持的工作流: 分支切换 · 拉取更新(fetch) · 拉取合并(pull,仅快进) · 暂存全部 · 提交(commit,可用 AI 起草提交信息) · 推送(push) · 状态(status) · 最近提交 · 未提交文件列表 · 点击变更看差异 · 基于某分支新建分支。
界面
- 悬浮面板(
shell.overlay):折叠时不渲染任何元素(不会遮挡输入框); 展开后自上而下是一条工作流:状态行(未提交计数、领先/落后、上游)→ 带 脏树预检 的分支切换器(有未提交修改时选择分支,会先显示受影响文件列表 警告而不是直接切换,并提供"仍要切换"按钮)→ 网络工具条(拉取更新 / 拉取合并 / 推送,三等宽,"推送"是主按钮)→ 提交卡片("暂存全部" + AI 生成依据 + "✨ AI 生成"三等宽,下面是提交信息输入框(多行文本框,回车换行、Ctrl/Cmd+Enter 提交)与提交按钮)→ 两张列表卡片。按钮一律等宽分栏,不再是一排宽窄不一的按钮。 操作反馈固定钉在面板最上边,而且只有一行——"推送中…"和上次操作的结果都在 body 的第一行;结果是一个中文短句("已推送"/"已暂存全部"/"已切换到 xxx"),git 自己的输出 (push 的 sideband banner、LF will be replaced by CRLF这类提示)收在右侧的"详情 ▾"里,点开才展开, 不会被变更列表和最近提交顶到看不见的地方。面板可通过顶栏拖动(按住带 Git 标题的 那一行,拖到哪里就停在哪里,不会拖出视口;顶栏上的按钮/输入框不会触发 拖动;双击顶栏回到居中位置)。顶栏右侧依次是 ⚙ 设置(提交信息语言, 见下文「提交区与 AI 起草」)、↻ 刷新、– 收起。 分支切换器旁边的"+ 新建分支"按钮会展开一个内联表单:新分支名 + 基分支 选择器(本地分支或origin/feature/x这样的完整远端引用)——确认后从 该基分支创建新分支并切换过去。 - 变更 / 最近提交两张卡片:变更列表每行是「等宽路径 + 状态色标签」(路径在左,
所以一列路径对得齐;修改=橙、新增·未跟踪=绿、删除·冲突=红、重命名=蓝,
当前正在看的那一行整行高亮);最近提交每行是「短 sha + 主题」。两张卡片的标题行
(
▾ 变更 12)点一下整段收起/展开,默认展开——面板不该把用户自己的改动藏起来; 列表超过 8 / 5 行时底部出现「显示全部 N 项」,与折叠是两件事,所以箭头永远指对方向。 - 刷新不闪:点 ↻ 或任何操作之后的重读都保留面板内容(同一个工作区不会退回 一行 "读取中…" 再弹回来),只在标题栏把刷新按钮置灰并写着"刷新中…"。
- 点击变更看差异:点变更列表里的任意一行,面板会从 400px 的单栏展开成
两栏——左边照旧是完整工作台,右边是该文件的 unified diff(见下文
「差异查看」)。再点同一行、或点差异标题栏的
×,就收回单栏。 - 输入框胶囊(
conversation.input.dock):输入框左上角的紧凑型左对齐 状态胶囊(分支摘要,或"当前工作区不是 Git 仓库");点击它展开/收起悬浮面板。 - 两处界面共享同一个 store,状态永远一致,并都会随当前会话(及其 cwd) 切换而重新绑定。切换工作区会清空已选中的文件——绝不让面板显示别的仓库的内容。
- git 的文字输出会剥掉 ANSI 颜色码:远端会给自己的 banner 上色(gitee 的
Powered by GITEE.COM就是),面板是 DOM 不是终端,ESC 没有字形可渲染, 不剥就只剩[0[01;33m这类参数当正文显示。只剥"消息"文本(message), diff 内容与文件名一律逐字节保真。
差异查看
点变更列表里的一行,就在右侧显示该文件的 git diff。左侧列表是它的导航: 行高亮表示"正在看这一个",首次点击会自动把变更列表展开成完整列表。
- 可拖拽调宽:拖动面板最右侧那条边即改差异栏宽度——左栏(工作台)宽度不变, 面板整体变宽、差异栏跟着长;双击这条边复位。面板始终留在视口内,窗口变窄时 会自动收回;拖动时面板会就地锚定左边缘,所以指针与这条边是 1:1 跟手的。
- 打开差异时尺寸是稳定的:一选中文件,面板就定好了高度(两栏都铺到面板底部), diff 读回来、切文件、来回点收起都只在栏内滚动,面板本身不会跟着内容跳一下。
- 未暂存 / 已暂存:默认自动跟随数据——未暂存有内容就显示未暂存,否则显示 已暂存;顶部两个 chip 可手动切换,空的一侧置灰。同一个文件两边都有改动时, 一次点击看到的是最关心的那一侧,另一侧一键可达。
- 自动刷新:暂存、提交、切分支、刷新之后,打开的差异会自己重读——未暂存 变空时会自动落到已暂存。
- 行号与配色:左右两列行号(旧/新)取自每个 hunk 头,
+/-行走主题的 成功/错误色,hunk 头单独一行,\ No newline at end of file灰显。 - 边界都有明确提示:这一侧没有改动 / 二进制文件没有文本差异 / 差异过大只 显示开头一段 / 未跟踪目录里还有 N 个文件未展开 / 读取失败。超过 1500 行的 差异先渲染前 1500 行,按钮可展开全部(避免一次渲染几万个节点)。
- 未跟踪文件:与空文件对比,显示成
new file mode的新增 diff;未跟踪 目录会把里面的文件逐个展开(上限 50 个,其余计入提示)。 - 重命名:同时把旧名与新名作为 pathspec 交给 git,否则 git 无法配对,会把 一次重命名报成整文件新增。
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
omdsh-dev/DSH-better-sidebar
Cerbur/clutch-dsh
Aealen/dsh-coding-workspace
loopx-project/loopx
LiPu-jpg/Openwrite