Chuyển đến nội dung chính

dsh-plugin-git

Đã xác minh

@rooode/dsh-plugin-git · v0.1.7 · MIT · Giao diện web

DeepSeek Harness Git 管理与提交流水线插件 (WebStorm 风格代码对比、多文件勾选、智能 Commit Message 生成)

Cài đặt

dsh plugin add @rooode/dsh-plugin-git

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Readme

DeepSeek Harness - WebStorm 风格 Git 提交与差异对比插件 (@rooode/dsh-plugin-git)

npm version license

本插件为 DeepSeek Harness (DSH) 深度复刻了 JetBrains WebStorm 的经典 Git 提交与差异对比核心体验:支持变更文件分层目录树结构、文件夹三态复选框、双栏并排 (Side-by-Side) 与单栏内联 (Unified) 代码差异对比、基于选中文件的 Conventional Commits 智能提交生成、Amend 模式与一键安全回滚。


🌟 核心特性 (Features)

  1. 🗂️ 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)。
  2. 🔍 专业级 Diff 差异对比视窗 (Diff Viewer):
    • 双栏并排模式 (Side-by-Side):左侧基准版本 (HEAD),右侧工作区修改 (Working Copy),行号对齐与同步滚动;
    • 单栏内联模式 (Unified):清晰 @@ 块标记与行内差异流;
    • 字符级差异高亮:精准定位行内发生修改的单词与字符范围。
  3. 🤖 基于选中文件的 Commit Message 智能生成:
    • 定向差异提取:仅提取用户当前勾选文件的 Diff 变更,避免无关文件干扰;
    • Conventional Commits 规范:自动推导 feat(scope): ...、fix(scope): ...、refactor(scope): ... 等标准化格式;
    • 快捷类型标签:点击快捷 Chip(feat, fix, docs, refactor 等)快速更新提交前缀;
    • 历史提交记录:支持下拉直接调取并复用最近提交记录;
    • Amend 模式:勾选自动同步读取上一条提交信息。
  4. ⚡ 右侧活动栏 (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