前言¶
在 DeepSeek Harness(DSH)Web GUI 里写代码、跑智能体会话时,工作区往往就是某个 Git 仓库。常见做法是切到终端或 IDE 做分支、暂存、提交、推送;会话一多、侧边栏来回点不同工作区,还要自己记住「当前 cwd 对应哪棵仓库」。@xia-sc/dsh-git 把一整套 Git 操作收进可折叠悬浮面板,并随当前会话的工作区实时重新绑定——换会话即换仓库视图,不必手动对齐路径。
这是什么¶
@xia-sc/dsh-git 是 DSH Web 的客户端 Git 管理插件(维护者 xia-sc,npm 包名 @xia-sc/dsh-git,当前资料版本 0.7.1,MIT 许可证)。形态包括:
- 输入框左上角的状态胶囊(
conversation.input.dock):显示分支摘要,或提示「当前工作区不是 Git 仓库」;点击展开/收起面板。 - 悬浮面板(
shell.overlay):折叠时不渲染 DOM,不挡输入框;展开后提供分支、拉取、提交、推送、变更列表与差异查看等完整工作流。
两处界面共用同一 store,并随会话及其 cwd 切换而重新绑定;切换工作区会清空已选文件,避免串仓库。
核心功能¶
README 列出的工作流如下(均已实现于面板与 RPC):
- 分支:切换(带脏树预检与警告)、基于本地或远端引用(如
origin/feature/x)新建分支。 - 远端:拉取更新(fetch)、拉取合并(pull 仅快进
git pull --ff-only)、推送(push)。 - 本地提交链:暂存全部(
git add --all)、提交(commit,可用 AI 起草提交信息)、状态(status)、最近提交列表。 - 变更:未提交文件列表(路径 + 状态色标签);点击某行在右侧打开 unified diff(未暂存/已暂存可切换,栏宽可拖,大 diff 有截断与展开)。
其他界面与行为要点:
- 操作反馈固定在面板最上方一行;Git 冗长输出收在「详情 ▾」。
- 刷新时保留面板内容,仅顶栏显示「刷新中…」。
- 提交区顺序:暂存全部 → 选择 AI 生成依据(已暂存/未暂存/全部)→ ✨ AI 生成 → 手写或修改后提交;提交本身不会隐式暂存。
- 顶栏 ⚙ 可设提交信息语言(含「自动」与多种语言),存于浏览器
localStorage(键dsh-git.commitLanguage)。 - 宿主侧 Git 经
execFile(无 shell)、带超时;浏览器通过自持路由/dsh-git-rpc调用(与 connection 插件 RPC 信封一致,安全围栏同/api)。
环境要求:资料写明需 dsh ≥ 0.1.5-rc.1(自持 HTTP 路由);会话绑定逻辑适配 dsh ≥ 0.1.6-alpha.2 起由会话座位提供当前会话的方式。
安装与启用¶
在 Web 配置档下安装(命令来自 README 原文):
dsh plugin --profile web add @xia-sc/dsh-git
也可从 GitHub 同源安装:
dsh plugin --profile web add https://github.com/xia-sc/dsh-git
安装后重启 dsh web(bundle 与浏览器 roster 在启动时组合)。刷新页面后,若当前会话工作区是 Git 仓库,输入框上方会出现 dock 胶囊,点击即可展开面板。
卸载:
dsh plugin --profile web remove @xia-sc/dsh-git
典型用法¶
- 打开 DSH Web,选中一个工作区为 Git 仓库的会话;点击输入框左上角胶囊,展开悬浮面板。
- 看状态行:未提交计数、相对上游的领先/落后。需要更新远端时,用网络工具条 拉取更新 或 拉取合并(仅快进);再 推送。
- 改完代码后,在「变更」卡片里点文件行查看 diff;确认无误后点 暂存全部,可选 ✨ AI 生成 提交说明(默认依据「已暂存」),在输入框用 Ctrl/Cmd+Enter 提交。
- 换分支:用分支切换器;有未提交修改时会先列出受影响文件并警告,可取消或 仍要切换。要开新分支:点「+ 新建分支」,填名称并选基分支后确认。
AI 生成走当前会话的模型路由,并携带 sessionId(部分网关要求会话亲和);失败时会在「上次操作输出」里显示本地化原因。
适用场景与注意¶
适合:主要在 DSH Web 里对话、改代码,希望少切终端、且面板随会话 cwd 自动对齐仓库的开发者。
注意:
- 插件在 DSH 宿主进程权限下执行
git与网络操作,安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全策略。 pull不做非快进合并;脏树切分支可能被 Git 拒绝,面板会尽量给出可读提示。- 社区目录 skillhub.cn 上的插件页 与 GitHub 为公开信息来源;DSH 生态是「一切皆插件」,该目录为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
@xia-sc/dsh-git 把分支、拉取、暂存、AI 辅助提交、推送、状态与可点击 diff 收进随会话移动的悬浮面板,适合在 Web GUI 里完成日常 Git 循环。进一步了解功能与 RPC 细节见仓库 README;安装与索引见社区目录页与 GitHub:
- 目录页:https://www.skillhub.cn/plugins/xia-sc/dsh-git
- GitHub:https://github.com/xia-sc/dsh-git