前言¶
DeepSeek Harness (DSH) 是一个插件化平台,旨在通过模块化扩展其核心功能。在 Web UI 环境中直接管理 Git 工作区,通常需要切换到外部客户端,这会中断操作流。本插件通过集成 Git 操作,将工作区管理收敛在 DSH 的 Web UI 内部,提供统一的交互体验。
插件简介¶
MoonlitDropOfBlood 维护的 DSH 客户端插件。它不依赖外部 Git 客户端,直接在 DSH 环境内提供 Git 工作区管理能力。
核心功能¶
- 仓库感知入口:在输入框工具行显示 Git 按钮,仅在当前目录是 Git 仓库时显示(60s 轮询缓存)。
- 设置同规格面板:800px 居中弹窗,圆角 24,毛玻璃遮罩,DOM 通过 Portal 渲染至 body 层。
- 变更管理:支持 staged/unstaged/untracked 文件,提供 unified diff 渲染,支持 commit 和 amend。
- 分支管理:支持本地/远程分支列表,新建、切换、改名、删除以及合并操作。
- 历史查看:提供带分支线图形的提交历史、refs 徽章以及 cherry-pick 功能。
- 冲突解决:提供横幅提示,支持逐文件选择 ours/theirs 或手动编辑解决冲突。
- Worktree 管理:支持 Worktree 列表、添加和删除。添加 Worktree 后会自动注册为 DSH 工作区。
- 主题适配:颜色跟随 DSH 设计 token,自动适配明暗主题。
安装与启用¶
使用官方 dsh plugin 命令安装。
dsh plugin --profile web add @duke-dsh-plugins/dsh-git-manager
安装后重启 DSH。当当前工作区是 Git 仓库时,输入框工具行的“模式”选择器旁会出现 Git 按钮。
使用方法¶
- 打开面板:点击输入框工具行的 Git 按钮(分支图标 + 当前分支名)。
- 变更操作:勾选文件进行 stage 或 unstage,点击文件查看 diff,底部输入提交信息进行 commit。
- 远程同步:在顶部执行 Fetch/Pull/Push,分支列表会显示 ahead/behind 状态。
- 分支管理:支持新建、切换、改名、合并、删除分支。
- 历史查看:点击提交可查看该提交的文件级 diff,并支持 cherry-pick。
- 解决冲突:合并冲突时,在面板中逐文件选择 ours/theirs 或手动编辑。
- Worktree:添加 Worktree(可同时开启新分支),添加成功后自动注册为 DSH 工作区。
- 关闭面板:按 Esc 键或点击遮罩层关闭。
注意事项¶
- 安全性:所有危险操作(如 force push、删除分支、丢弃文件)均需 UI 二次确认。Force push 仅允许
--force-with-lease。 - 性能限制:Diff 输出超过 1.5MB 时会截断提示;Log 默认每页加载 200 条。
- 路径校验:涉及写文件的操作(如丢弃未跟踪文件、手动解决冲突)会先校验路径是否越出仓库根目录。
- 非官方产品:本项目是基于 DeepSeek Harness 构建的社区插件,并非 DeepSeek 官方产品。