Skip to main content
H

dsh-plugin-git

happyqu/dsh-plugin-git

Git workbench in the DSH session header and overlay: view changes, commit, fetch, pull, push, and browse branches and history in existing local repositories.

Install

dsh plugin --profile web add github:happyqu/dsh-plugin-git

README

DSH Git 插件

在 DeepSeek Harness(DSH)会话中管理 Git 项目:查看改动、提交代码、同步分支、浏览历史和解决冲突。

支持中文与英文界面,以及深色、浅色主题。

DSH Git 工作台

安装

  1. 安装 Git 2.36 或更高版本,确保 git 在 PATH 中可用。
  2. 在 DSH 的 插件 → 添加插件 中输入 @happyqu/dsh-plugin-git,安装并启用。
  3. 打开项目工作区,点击会话标题栏的 Git 按钮进入工作台。

新会话选好工作区后,无需先发送消息,即可通过“标准模式”等模式选择器右侧的分支按钮切换或新建分支;分支弹窗底部可打开 Git 工作台。开始对话后,入口位于会话标题栏。Git 始终跟随当前工作区;切换工作区期间暂不可操作 Git。

本包需要在 DSH 中使用,无需自行构建。未检测到 Git 时,可在插件设置中指定可执行文件路径。

插件前端和 Host 使用同一版本协议;更新后需一并重新加载。旧 Git 和旧 Host 不提供替代执行流程。

主要功能

功能说明
项目与工作区新建项目、打开本地目录、克隆仓库;新建或克隆后自动进入对应会话
改动与提交改动列表、暂存、文件或代码块提交、提交范围预览、提交并推送
分支与同步管理分支、标签和远程仓库,执行 Fetch、Pull、Push 与合并
工作树查看同一仓库的多个开发目录及文件状态,新建、打开、安全删除、锁定、移动、修复关联与清理失效记录
历史与对比提交历史与提交图、版本对比、完整文件与图片预览、历史文件及 ZIP 导出
冲突与储藏对照当前与传入版本、逐块或手动解决冲突、使用 VS Code 合并、管理 stash
Git LFS跟踪规则、内容同步,以及带备份的历史迁入与迁出
AI 辅助生成提交信息、解释提交,支持选择模型与思考模式

从侧栏或新会话菜单的 添加工作区 进入,可选择新建项目、本地目录或克隆仓库。新建项目会记住上次使用的保存目录,项目文件夹名称需手动填写。

改动列表会识别未跟踪目录中的独立 Git 仓库,并显示“未注册的 Git 仓库”提示。可直接打开该仓库管理、选择“仅本机忽略”(写入外层仓库的 .git/info/exclude),或“添加到 .gitignore”(可随提交共享)。丢弃更改会保留这些仓库及其内部文件;批量操作继续处理其他选中的文件,并列出保留的仓库。

在 Git 工作台的 工作树 模块中,选择目录查看分支、改动和进行中的操作。“在 Git 中打开”仅切换 Git 操作目录;“打开为 DSH 工作区”进入对应工作区会话。分支菜单也可新建工作树,或直接打开占用该分支的工作树。创建后若打开失败,可重试打开,已创建的目录会保留。

删除工作树会移除目录及关联记录,保留分支。插件不提供强制删除;主工作树、当前工作树、锁定目录,以及含有改动、未跟踪或被忽略文件、未完成 Git 操作的目录均不能删除。工作树间共享分支、标签和 stash,暂存区与本地文件各自独立。

工作树详情提供锁定/解锁、移动和修复关联,执行前均需检查预览。暂时离线的磁盘可先锁定,避免记录被清理;锁定/解锁无需目录在线。移动会保留本地文件和分支,目标目录必须不存在;主工作树、当前工作树、锁定目录和进行中的 Git 操作不能移动,子模块等其他限制由 Git 检查。手动移动关联工作树后,可选中旧记录,使用“修复关联”选择保留原 .git 文件的新目录。移动和修复不会自动修改 DSH 已有工作区路径,请从新目录重新打开工作区。

“清理失效记录”会先预览全部可清理记录(包括刚失效的记录),只清理关联元数据,保留分支及工作目录。磁盘暂时离线时不要清理对应记录;先锁定需要保留的工作树。预览后若状态变化,需重新预览再执行。

工作树列表默认优先显示最近使用的目录,支持按分支排序,并搜索任务备注。备注保存在当前设备,不写入仓库;插件内切换前可保存或放弃草稿,从 DSH 侧栏切换会话时,未保存的草稿会在本次插件运行期间保留,返回对应工作树即可继续编辑。移动和修复后会迁移备注、草稿及使用记录。详情会展示 Host 提供的关联工作区、会话名称;打开目录时优先复用已有工作区,避免重复创建。

选择其他工作树后,点击“比较工作树内容”,可比较两个目录当前磁盘上的文件,包含暂存、未暂存及未跟踪文件,支持差异及左右两侧内容预览。对比使用只读快照,不改变文件、索引或仓库对象;忽略文件和子模块目录不参与,重命名按新增和删除展示。快照有效期为 5 分钟,最多保留最近两次;上限为 5000 个文件、读取总量 32 MiB、单文件 4 MiB,超限时会提示并停止。目录后续变化不会改写已有快照,需点击刷新生成新对比。

使用须知

  • 提交前需配置 Git 用户名与邮箱;远端认证沿用 Git 凭据管理器或 SSH 配置。
  • AI 功能需要 DSH 中可用的模型服务,普通 Git 操作不依赖 AI。
  • 在“设置 → AI 助手”中可配置提交信息的差异排除规则:每行一条,例如 dist/**、**/*.map,用 !dist/important.js 设置例外。匹配文件只提供文件信息,不读取差异正文,不影响实际提交;常见产物和大文件默认只提供摘要。
  • Git LFS 功能需要另行安装 Git LFS。
  • 连接远程 DSH 时,文件操作、Git 和外部编辑器均运行在远程设备上。
  • 更新后若提示功能尚未加载,请重新加载 Git 插件 Host 或重启 DSH;仅刷新页面不会更新 Host。

维护者

版本发布与 npm 授权配置见 发版指南。

反馈

源码:GitHub · 问题反馈:Issues

提交问题时,请附上插件版本、Git 版本、复现步骤和相关错误信息。失败命令可在插件的“输出”中查看。

许可证

MIT

Related plugins