dsh-git-management:在 DSH 右侧边栏完成 Git 与 GitHub 操作

前言

在 DeepSeek Harness(DSH)里和 Agent 对话时,改代码往往就在当前工作区里完成。若每次暂存、提交、切分支或看 PR 都要切到终端或浏览器,对话上下文容易被打断。常见做法是并排开一个 IDE 或终端窗口做 Source Control,但右侧栏本身并未提供与 Cursor / VS Code 相近的 Git 面板。

dsh-git-management 是社区维护的 DSH 客户端插件,在右侧边栏增加「源代码管理」分页,背后直接调用系统上的 git,变更状态与终端里 git status 一致,并可在同一栏内查看 diff、提交图、worktree 与 GitHub 信息。下面介绍它是什么、能做什么、如何安装与常见用法。

这是什么

  • 定位:DSH 外挂(客户端),维护者 ET921,仓库 ET921/dsh-git-management,已发布 npm 包 dsh-git-management(当前资料中版本为 0.1.2),授权 MIT。
  • 分类:客户端;依赖 DSH >=0.1.1-rc.1,Node ^22.19.0 || >=24.0.0。
  • 核心思路:不内嵌 Git,Host 通过 subprocess 执行本机 git;面板是入口,文件差异、单次提交差异、工作树、GitHub 均在右侧开分页,不盖住主对话区。

插件目录页:skillhub.cn/plugins/ET921/dsh-git-management。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前建议自行查看源码与许可证。插件以当前 DSH 进程权限运行,请确认本机 Git 与凭据配置符合你的安全要求。

核心功能

界面按区块划分,与 README 中的「介面地图」一致。

区块 作用
分支列 当前分支、ahead/behind、Fetch / Pull / Push
提交框 提交说明、全部暂存、amend
变更清单 已暂存 / 更改 / 冲突;点文件看差异
工作树 同一 repo 的多个 checkout(含 DSH 的 .agents/worktrees/*)
Graph 提交列表与分支轨道;点某次提交看「提交差异」
GitHub 识别 origin;查看 repo / PR / Issue;可从当前分支新建 PR

提交与暂存:在「更改」列表 hover 文件可暂存、放弃、删除未跟踪文件;Ctrl+Enter 或点「提交」;支持「全部暂存」与「修改上次提交」;存在冲突时提交按钮会停用并提示原因。

看差异:点文件打开「文件差异」分页(双栏行号、统一/并排);分页头可直接暂存或放弃。Graph 中点某一列打开「提交差异」,按文件竖排,只渲染有变更的 hunk。

同步与分支:分支名可切换;Fetch 仅更新远端引用;Pull 为快进合并;Push 推送(首次可设 upstream)。↑2 ↓1 表示本地领先 2、落后 1。

工作树:可新建 worktree(例如落在 .agents/worktrees/<name>、分支 worktree-<name>),并打开为另一 DSH 工作区,便于 Agent 并行改代码。

GitHub:自动识别 origin(含 ssh/https、GitHub Enterprise)。GitHub token 存于本机 DSH 凭据区(权限 0600,与模型 API key 同一 store);推送仍走本机 git 凭据。面板可「忘记 token」清除。

其他:多 workspace 下拉切换;非 git 目录可一键 git init;可见时每约 8 秒只读 status(非文件监听);错误与成功提示 sticky 在顶部。

已知边界(来自 README):无内置冲突解决器;大仓库首次 status --untracked-files=all 可能较慢;提交差异为 hunk 级、单提交最多 60 个文件;修改 Host 侧代码需完全重启 DSH Desktop,仅改 client 可 Ctrl+R。

安装与启用

从插件市场(npm)安装——资料给出的命令为:

dsh plugin --profile web add dsh-git-management

另可在 DSH Desktop 的 Plugin Manager 安装 Release 预构建包 dsh-git-management.tgz,无需本地构建。

本地开发(需自行 build):

npm install
npm run build

在 profile 的 cordis.patch.yml 末尾插入插件 id git-management / name dsh-git-management,并在 profile 的 node_modules 下链接到本仓库目录,然后重启 DSH Desktop。验证构建:

npm run build

典型用法

打开面板

右侧边栏与 session 绑定,须先打开 session。

  1. 右侧栏切到「开始」,向下找到「源代码管理」卡片。
  2. 点击后右侧出现 Git 分页,默认选中当前 workspace 的 repo。

若看不到卡片:确认已开 session,必要时 Ctrl+R 重载;Host 与 client 版本不一致时出现 unknown action: commitDiff 时,需从菜单/托盘完全退出 DSH Desktop 再启动。

改完代码并推送

  1. 「更改」列表中 hover 文件点 + 暂存,或「全部暂存」。
  2. 填写提交说明后提交。
  3. 分支列点 Push(首次会设 upstream)。

查看某次提交改了什么

  1. 滚动到 Graph,点目标提交行。
  2. 右侧打开「提交差异」分页,按文件查看 hunk。

切分支并同步

  1. 点分支名选择分支。
  2. Fetch 更新远端引用;Pull 快进合并;Push 推送。

用 worktree 让 Agent 并行工作

  1. 在「工作树」点 +,输入名称(如 fix-ui)。
  2. 创建在 .agents/worktrees/fix-ui,分支 worktree-fix-ui。
  3. 点「开启」作为另一 DSH 工作区使用。

开 Pull Request

  1. 先将分支 Push。
  2. 在「GitHub」区点「新建 PR」,填写标题、说明与目标分支;或使用「在 GitHub 打开」。

适用场景与注意

适合:在 DSH 内完成日常 Git 流程、快速 review diff 与提交历史、需要与 Agent 对话同时管理分支与 PR 的开发者;不熟悉 git 命令时也可按 README「常见情境」逐步点击操作。

注意:

  • 面板状态与终端一致的前提是使用同一 repo 路径与本机 git;凭据问题需在终端侧配置(例如先 git push 让 Credential Manager 记住)。
  • 看不到同事新分支时,先在 Graph 或分支列执行 Fetch,更新 remote-tracking ref。
  • 架构上 UI 经 POST /dsh-git/api 调 Host,Host 以 argv 调用 git(不经 shell);请求 path 须在已注册 workspace 内,否则 403。使用 GitHub 功能需在本机配置 token(存 DSH 凭据区,不由 client 随请求携带)。

结尾

dsh-git-management 把 Source Control 收进 DSH 右侧栏:暂存、提交、分支、同步、Graph、worktree 与 GitHub 集成,对话不必为 Git 频繁切窗。如需详情与截图,见 GitHub README;插件索引见 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜