dsh-lite-git:DSH 右侧栏里的 GitHub Desktop 风格 Git 面板

前言

在 DSH 里用智能体改代码,改动往往落在当前会话的工作区里。要看改了哪些文件、勾选暂存、写 Summary 提交,常见做法是切到终端跑 git status、git add、git commit,或者再开一个桌面 Git 客户端。DSH 右侧栏本来就是「文件 / 文档 / 聊天」等常驻标签;把 Git 操作收进同一栏,可以和当前会话共用工作区上下文——切换会话,面板跟着换仓库,不必再选一次目录。

下面介绍社区插件 dsh-lite-git(维护者 Ckarefulon),它在 DSH 自带右侧栏提供变更列表、勾选暂存、提交与推送、舍弃进回收站、diff 预览等能力。插件归类为客户端,在 SkillHub 目录页 可查到条目;源码与说明见 GitHub 仓库(MIT,当前包版本 0.7.0)。

这是什么

dsh-lite-git 是给 DeepSeek Harness(DSH)用的 Git 面板:交互风格接近 GitHub Desktop,装在 DSH 右侧栏的一个 tab 里。面板按窄栏设计(右栏最小约 300px),文件单列展示,提交区默认一行 Summary,Description 可展开。

与「只在终端里操作 git」相比,勾选会直接映射到 git add / git restore --staged;与独立 Git GUI 相比,它绑定的是当前 DSH 会话的工作区,不是你在客户端里手动打开的任意文件夹。

核心功能

资料中的能力可概括为下面几类(均以本机 git 与系统凭据为准,插件不保存凭据)。

变更与暂存

  • 列表识别修改、新增、删除、重命名、未跟踪,并显示 +n −n 行数。
  • 勾选即 git add,取消即 git restore --staged;半暂存文件显示半选,点一下在「整体勾上 / 整体撤出」之间切换。
  • 标题栏三态全选;冲突文件不参与全选与自动勾选。
  • 刷新时:列表里新出现的改动会自动勾上,已在列表中的文件保持你上次的选择;第一次打开或提交后,若索引为空则全部勾上,索引非空则不动已有选择。

提交与远端

  • Summary 必填一行;Description 通过右侧小三角展开。
  • Commit 只提交已勾选项(已写入索引)。
  • Commit and Push 先提交再推送;若推送失败,面板会说明「已提交 xxx,但推送失败」,不会误报提交失败。
  • 上下文按钮随状态变化:有未推送本地提交时为 Push,无上游时为 Publish,否则为 Fetch。
  • 推送前会先 git fetch --prune;若本地落后会拒绝推送并提示落后提交数。autoFetchMs 控制面板可见时的自动 fetch(默认 300000 ms,0 关闭)。

舍弃、回收站与 diff

  • 单文件或「全部舍弃」:默认把本次 diff 归档到插件回收站;确认框可勾「彻底删除」不进回收站。
  • 回收站独立 tab,记录基于哪次提交取的 diff;可查看、恢复(恢复后文件在列表中为勾上状态)或删除条目。
  • 双击文件行在右栏打开 diff 标签页,且始终复用同一个 diff 标签;diff 页可用系统默认程序、记事本等在宿主机器上打开文件,也可通过配置 openWith 增加编辑器。

Summary 脚本与其它

  • 在面板内可编辑「填 Summary 的脚本」,以仓库根为工作目录运行;输出为 Summary,单独一行 --- 之后为 Description。每次重新获得面板焦点时会自动跑脚本,但不会覆盖你手写的 Summary。
  • 工作区本身是 Git 仓库则自动绑定;否则可从工作区扫描结果中选择或填路径。状态目录默认 <DSH_HOME>/dsh-lite-git/(无 DSH_HOME 时回落 ~/.dsh)。

前置条件

需要什么 说明
DSH >= 0.2.0-rc.2 右侧栏 tab API
Node >= 22 宿主侧依赖
本机 git 默认从 PATH 查找,可用 gitPath 指定
凭据 Push 走系统 git 的 credential helper;终端能 push 成功后插件才能推

安装与启用

官方安装命令(安装后需重启 DSH):

dsh plugin --profile <你的 profile> add dsh-lite-git

在会话中打开右侧栏,引导页会出现 「Git 更改」 卡片,点击进入面板。

从 0.7.0 起包名由 dsh-gitbar-lite 改为 dsh-lite-git。若曾装旧包,需先卸载旧 id 再装新包:

dsh plugin --profile <你的 profile> remove dsh-gitbar-lite

本地开发可用链接安装:

dsh plugin --profile desktop add link:/绝对路径/dsh-lite-git

卸载:

dsh plugin --profile <你的 profile> remove dsh-lite-git

典型用法

  1. 在绑定到 Git 仓库的 DSH 会话里打开右侧栏,进入 Git 更改。
  2. 在变更列表中勾选要暂存的文件(与终端 git status 一致)。
  3. 填写 Summary(可展开 Description);需要时可配置或运行面板内的 Summary 脚本,例如从 CHANGELOG.md 取版本号:
grep -m1 '^## ' CHANGELOG.md | sed 's/^## //'
  1. 点 Commit 或 Commit and Push;需要同步远端时用 Push / Publish / Fetch。
  2. 双击某行查看 diff;误改可用行尾舍弃或「全部舍弃」,默认 diff 进回收站以便回看或恢复。

常用配置项(设置页修改后即时生效,无需重启)包括:gitPath、timeoutMs、autoFetchMs、maxDiffBytes、trashLimit、summaryScript、openWith 等,含义见仓库 README「配置」一节。

适用场景与注意

适合谁:经常在 DSH 会话里改同一工作区仓库、希望少切终端或少开第二个 Git 窗口的开发者;需要窄侧栏里完成 stage / commit / push / 简单 diff 的场景。

权限与安全:插件通过 DSH 宿主侧调用本机 git,以当前 DSH 进程权限执行;安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。插件不读写 $DSH_HOME 里的密钥,也不自行存储凭据。

生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系,本文不构成官方背书。

结尾

dsh-lite-git 把 GitHub Desktop 式的勾选暂存、提交、推送、舍弃与 diff 预览放进 DSH 右侧栏,并与当前会话工作区绑定,减少在对话、终端和外部 Git 客户端之间来回切换。

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

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

小夜