前言¶
在 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
典型用法¶
- 在绑定到 Git 仓库的 DSH 会话里打开右侧栏,进入 Git 更改。
- 在变更列表中勾选要暂存的文件(与终端
git status一致)。 - 填写 Summary(可展开 Description);需要时可配置或运行面板内的 Summary 脚本,例如从
CHANGELOG.md取版本号:
grep -m1 '^## ' CHANGELOG.md | sed 's/^## //'
- 点 Commit 或 Commit and Push;需要同步远端时用 Push / Publish / Fetch。
- 双击某行查看 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 客户端之间来回切换。