DSH 插件生态丰富,但针对 Git 工具的深度定制相对较少。本地开发时,开发者通常需要在终端或独立的 IDE 中查看提交历史、管理分支和对比变更。dsh-ide-git 插件通过引入 IDE 级的 Git 工具窗口,将分支树、提交图谱、变更列表与提交详情整合到一个面板中,支持 JetBrains 风格的操作方式,并作为 dsh-better-sidebar 的原生 Tab 注册,适配右侧栏与底部面板布局。
这是一个由 KannaKuron 维护的客户端插件,旨在解决 DSH 原生 Git 面板功能单一的问题。它提供了完整的分支管理、提交图谱可视化以及逐行 diff 查看能力,同时支持将代码片段或提交引用直接发送到当前会话,方便与 AI 协作。
核心功能¶
- 分支树管理:支持 HEAD / 本地 / 远程 / 标签分组,带 ahead/behind 角标,展示上游与 worktree 占用标记。
- 提交图谱:展示 lane 拓扑与分支/标签 ref 徽章,支持加载更多与过滤(文本、哈希、作者)。
- 变更与详情:支持逐行 diff,红绿高亮与行号,点击文件可查看完整变更。
- 发送到对话:支持提交、分支、文件及 diff 选区右键发送到当前会话,自动生成引用格式。
- 双布局自适应:在右侧栏(窄高)采用堆叠布局,在底部面板(宽扁)采用三栏布局,v0.13.0 起支持挂载至主对话区标签页。
- Git 操作:支持变更暂存、丢弃、还原、重置,以及 Cherry-pick、新建标签、抓取/拉取/推送。
- 安全与撤回:删除分支或贮藏后 30 分钟内可撤回;同一仓库的写操作在宿主中串行执行。
安装与启用¶
在宿主终端执行以下命令安装插件:
dsh plugin --profile web add dsh-ide-git
安装后,插件会自动注册。若已安装 dsh-better-sidebar,面板将作为原生 Tab 出现在侧边栏;若未安装底座,面板也会自动出现在 DSH 原生右侧栏的 Guide 页中。
典型用法¶
- 发送引用:在面板内右键点击提交或分支,选择“发送到对话”,可将引用插入当前会话。
- 发送代码片段:在 diff 窗口选中代码行并右键,选择“发送选中行到对话”,将特定代码段发送至聊天。
- 查看变更:在变更列表或提交详情中点击文件行,查看逐行 diff。
适用场景与注意¶
- 依赖要求:需要宿主 DSH 版本 >= 0.1.6-alpha.2,以及 Node.js >= 18。
- 图标处理:不依赖
ui-primitives图标集,使用自带 SVG。 - 操作安全:写操作(如删除分支、重置)在宿主中串行执行,防止并发冲突。
- 撤回机制:删除操作具有 30 分钟的窗口期,期间可通过浮窗或顶栏入口撤回。
该插件为 DSH 提供了一个功能完备的 Git 工具窗口,适合需要频繁进行分支切换、代码审查和与 AI 协作的开发者。
目录页:https://www.skillhub.cn/plugins/KannaKuron/dsh-ide-git
源码地址:https://github.com/KannaKuron/dsh-ide-git