前言¶
在 DeepSeek Harness (DSH) 的 Web 环境下,会话通常对应一个具体的工作区目录。当项目使用 Git 管理时,开发者需要频繁在本地不同分支间切换。手动执行 git checkout 命令打断工作流,且在 Web 界面中操作不够直观。dsh-git-branch-switcher 插件直接在会话头部提供分支胶囊,将 Git 操作集成到 DSH 的 UI 中。
这是什么¶
这是一个 DeepSeek Harness (DSH) Web 客户端插件。由 mixin-ai 维护。它通过在会话头部显示一个胶囊按钮,让用户能够直接在 DSH 界面中查看当前 Git 分支并进行切换,避免频繁在终端和界面间跳转。
核心功能¶
- 分支胶囊显示:在会话头部右上角显示当前 Git 分支(仅在 Git 管理的工作区中显示)。
- 分支切换:点击胶囊弹出分支面板,列表中当前分支会以 ✓ 高亮,点击任意分支即可执行
git checkout。 - 状态同步:支持
detached HEAD状态,显示短提交哈希;每 30 秒自动刷新,并支持点击 ↻ 按钮手动刷新。 - 错误反馈:切换失败时(如本地有冲突改动),会显示 Git 原始报错信息。
- 主题与安全:所有颜色使用
--dsw-*主题 token,适配亮/暗模式;Git 命令与会话 Shell 使用同一套沙箱策略执行。
安装与启用¶
执行以下命令将插件安装到 Web profile:
dsh plugin --profile web add "github:mixin-ai/dsh-git-branch-switcher#main"
安装后重启 Web profile 以加载插件:
dsh --profile web
典型用法¶
- 打开一个工作区为 Git 仓库的会话。
- 在会话头部右上角点击分支胶囊。
- 在弹出的面板中选择目标分支进行切换。
- 若需立即同步最新状态,点击面板内的 ↻ 按钮重新读取分支列表。
适用场景与注意¶
- 适用范围:该插件仅在 Git 管理的工作区中才会显示分支胶囊。
- 版本要求:依赖 Node.js 版本为
^22.19.0或>=24.0.0。 - 安全性:插件通过
shell服务执行 Git 命令,遵循与会话 Shell 相同的沙箱策略。分支名经过单引号转义并拒绝控制字符,防止命令注入。
短结尾¶
该插件通过将 Git 操作下沉到会话头部,降低了 Web 环境下分支切换的操作成本,适合需要频繁在 DSH 中进行代码切换的开发者。插件详情与源码位于:GitHub。