dsh-plugin-git
已验证@rooode/dsh-plugin-git · v0.1.7 · MIT · Web 界面
DeepSeek Harness Git 管理与提交流水线插件 (WebStorm 风格代码对比、多文件勾选、智能 Commit Message 生成)
安装
dsh plugin add @rooode/dsh-plugin-git 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
说明文档
DeepSeek Harness - WebStorm 风格 Git 提交与差异对比插件 (@rooode/dsh-plugin-git)
本插件为 DeepSeek Harness (DSH) 深度复刻了 JetBrains WebStorm 的经典 Git 提交与差异对比核心体验:支持变更文件分层目录树结构、文件夹三态复选框、双栏并排 (Side-by-Side) 与单栏内联 (Unified) 代码差异对比、基于选中文件的 Conventional Commits 智能提交生成、Amend 模式与一键安全回滚。
🌟 核心特性 (Features)
- 🗂️ WebStorm 经典提交抽屉 (Commit Changes Drawer):
- 分层目录树结构 (Directory Tree):按文件夹层级展示变更文件,支持中间单层目录自动压缩合并(Compact Empty Middle Packages,如
packages/client/ui-git/一行合并); - 文件夹三态复选框 (Tri-state Checkbox):支持全选、部分勾选(半选中划线
-)、未选中状态,点击文件夹一键批量勾选子文件; - 视图切换与展开控制:支持一键切换 📁 目录树视图 与 ☰ 平铺列表视图,支持 ➕ 一键展开全部 与 ➖ 折叠全部目录;
- 精准变更标记:精准标记
M(修改-蓝)、A(新增-绿)、D(删除-红)、U(未跟踪-橙)、R(重命名-紫),并附带增删行数统计(+45 -2); - 一键安全回滚:支持对选中的变更文件执行安全丢弃与恢复(Rollback)。
- 分层目录树结构 (Directory Tree):按文件夹层级展示变更文件,支持中间单层目录自动压缩合并(Compact Empty Middle Packages,如
- 🔍 专业级 Diff 差异对比视窗 (Diff Viewer):
- 双栏并排模式 (Side-by-Side):左侧基准版本 (HEAD),右侧工作区修改 (Working Copy),行号对齐与同步滚动;
- 单栏内联模式 (Unified):清晰 @@ 块标记与行内差异流;
- 字符级差异高亮:精准定位行内发生修改的单词与字符范围。
- 🤖 基于选中文件的 Commit Message 智能生成:
- 定向差异提取:仅提取用户当前勾选文件的 Diff 变更,避免无关文件干扰;
- Conventional Commits 规范:自动推导
feat(scope): ...、fix(scope): ...、refactor(scope): ...等标准化格式; - 快捷类型标签:点击快捷 Chip(
feat,fix,docs,refactor等)快速更新提交前缀; - 历史提交记录:支持下拉直接调取并复用最近提交记录;
- Amend 模式:勾选自动同步读取上一条提交信息。
- ⚡ 右侧活动栏 (Activity Rail) 与交互整合:
- 右侧抽屉滑动:右侧边缘平滑滑出,支持拖拽左边缘实时调整抽屉宽度;
- 一键切换:与工作区预览插件统一挂载在右侧活动栏,支持一键无缝互斥切换;
- 快捷键秒开:按下
Ctrl+K(WebStorm 经典快捷键)或Alt+G瞬间呼出/关闭提交窗口; - 快捷提交:
Ctrl+Enter快速执行提交。
📦 快速安装 (Installation)
在终端中执行以下命令,将插件一键安装到 DSH 的 web profile 中:
方式 1:标准 npx 安装(推荐,无需全局安装)
# 1. 一键从 npm 下载并安装插件
npx @deepseek-ai/dsh plugin --profile web add @rooode/dsh-plugin-git
# 2. 启动 DSH Web 界面
npx @deepseek-ai/dsh web
方式 2:全局 dsh CLI 安装
如果您已全局安装了 npm install -g @deepseek-ai/dsh:
# 1. 安装插件
dsh plugin --profile web add @rooode/dsh-plugin-git
# 2. 启动
dsh web
方式 3:离线 Tarball 安装(适合内网/断网环境)
# 下载或拷贝 rooode-dsh-plugin-git-*.tgz 后执行:
npx @deepseek-ai/dsh plugin --profile web add ./rooode-dsh-plugin-git-0.1.1.tgz
⚙️ 配置项说明 (Configuration)
可在 cordis.patch.yml 中自定义配置以下参数:
- insert:
- id: ui-git
name: '@rooode/dsh-plugin-git'
config:
enableCommitDockButton: true
autoRefreshIntervalMs: 10000
defaultDiffViewMode: 'split'
commitAiStyle: 'conventional'
配置参数列表
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enableCommitDockButton |
boolean |
true |
是否在对话输入框正上方 Dock 栏常驻 Git 提交状态与唤醒按钮 |
autoRefreshIntervalMs |
number |
10000 |
Git 状态后台自动扫描刷新间隔(毫秒) |
defaultDiffViewMode |
'split' | 'unified' |
'split' |
默认 Diff 对比视窗模式(split 双栏并排 | unified 单栏内联) |
commitAiStyle |
'conventional' | 'concise' | 'detailed' | 'emoji' |
'conventional' |
智能生成 Commit Message 的默认规范风格 |
📁 项目结构 (Directory Structure)
dsh-plugin-git/
├── package.json # 插件元信息、dsh.bundle/client 声明与 npm scripts
├── cordis.patch.yml # DSH 组合包 patch 描述文件
├── tsconfig.json # TypeScript 严格编译与类型输出配置
├── README.md # 插件技术说明与安装文档
├── src/
│ ├── types.ts # Git 文件状态、Diff 结构、Commit AI 选项类型定义
│ ├── git-engine.ts # Git 原生指令封装 (status, diff, commit, log, branch 等)
│ ├── commit-ai.ts # 智能 Commit Message 生成器 (Conventional/Emoji 风格规则)
│ ├── service.ts # Cordis 服务 GitService (Node 端 Git API 路由与定时扫描)
│ ├── index.ts # Node 端入口:服务初始化、WebServer 注入与 Schema 校验
│ └── client.js # 前端 React 提交抽屉、Diff 对比器与活动栏挂载组件
├── lib/
│ ├── index.js # Node 端 ESM 产物
│ ├── git-engine.js # Git 引擎产物
│ ├── commit-ai.js # Commit AI 产物
│ ├── service.js # Node 路由服务产物
│ ├── index.d.ts # 类型定义声明
│ └── client.js # 前端独立分发 Bundle
└── scripts/
├── build.js # 编译与 Profile 自动分发同步脚本
└── test.js # Git 引擎与差异解析单元测试
🛠️ 本地开发与二次构建 (Development)
在本项目根目录下执行:
# 1. 编译产物并将最新代码同步至本地 DSH 运行环境
npm run build
# 2. 监听文件变动实时编译与热更新
npm run dev
# 3. 执行 TypeScript 类型检查
npm run typecheck
# 4. 运行自动化测试
npm test
# 5. 生成离线分发 tarball 压缩包
npm run package
📄 开源许可证 (License)
MIT License © 2026 rooode