- Accueil
- Plugins
- Git et revue de code
- dsh-git4idea
dsh-git4idea
guojinpeng/dsh-git4idea
IDEA-style Git tool window for DSH: branch tree with ahead/behind badges, commit graph with text/branch/author/date/path filters, staged and unstaged changes with a commit box, commit details with per-file line diff, stash and worktree management, a git console log, and AI commit-message drafting. Fork of KannaKuron/dsh-ide-git (MIT), reworked to register native DSH entries instead of depending on dsh-better-sidebar and extended with worktree management, undo for branch, stash and discard actions, a git console log and AI commit-message drafting. Its plugin, route and sidebar-tab ids differ from the upstream, so both can be installed, but you get two Git tool windows.
Installer
dsh plugin --profile web add github:guojinpeng/dsh-git4ideaREADME
@guojinpeng/dsh-git4idea
DSH 插件。它在 DeepSeek Harness 中提供一个 IDE 风格的 Git 工具窗口:分支树、提交图谱、变更与暂存、提交详情、差异视图、控制台和工作树。
入口
- 会话标签行:在“对话 / 轨迹”旁增加 Git 页。该页常开。
- 输入框分支胶囊:显示当前分支。点击后打开分支选择器,可切分支、fetch、提交、推送或新建分支。在终端或外部 IDE 切换分支后,胶囊约 2.5 秒内更新。
- 右侧栏:注册 Git 主面板和 Git 预览页。启动时不自动打开。差异视图找不到浮窗位置时,回退到预览页。
- 会话页浮窗:提交、推送和单文件 diff 在会话页中央打开,不切换页面。
仓库
插件自动查找当前工作区、嵌套仓库和子模块。子模块可以作为独立仓库打开。
- 目录扫描深度为 2,跳过依赖与构建目录。
- 仓库列表最多 60 项。
- 扫描结果缓存 15 秒。
- 未初始化的子模块不显示。
分支树
- 分组:HEAD、本地、远程、标签、收藏。
- 每行显示 ahead/behind、上游和 worktree 占用标记。
- 支持过滤、折叠、多选、复制名称/哈希/路径,以及批量删除引用和 cherry-pick。
- 行菜单提供签出、从此新建、合并到当前分支、当前分支变基到此、与当前分支比较、发送到对话、收藏、设置/取消上游、创建跟踪分支、重命名、删除、更新和推送。
- 动作条默认七个动词:收起分支栏、新建分支、拉取、删除、比较、fetch、收藏。放不下的动词收进“更多”。
变更与提交
- 分组显示已暂存、未暂存、未跟踪和冲突文件;可显示被忽略的文件。
- 支持单文件、多选或全部暂存、取消暂存、丢弃。
- 文件可按平铺或目录分组,可全部展开或折叠。
- 提交框支持提交、修正上一次提交、提交并推送。
- AI 写提交信息:跟随当前会话的模型路由;会话没有模型时使用宿主服务的第一个模型。可选择中文或英文。覆盖已输入的草稿前会确认,并支持撤销。
历史与详情
- 提交图谱显示 lane 拓扑和 ref 徽章,支持无限滚动。
- 可按文本或哈希、分支、用户、日期、路径过滤,并切换升序/降序。
- 提交详情显示作者、日期、完整说明、变更文件和逐行差异。合并提交与第一父比较。
- 可多选提交执行 cherry-pick。
- 提交菜单提供签出、在此新建分支、在此新建标签、cherry-pick、还原、软/硬重置、复制哈希、查看详情和比较。
差异视图
- 单栏或左右对比。
- 自动换行、复制全文、二进制提示、截断提示。
- hunk 与行高亮,双列行号。
- 可选中行发送到对话,或复制引用。
提交、推送与更多操作
- 提交并推送分两步:提交成功后打开推送窗,推送成功后关闭。任一步失败都停在当前卡片,并说明原因。
- 推送窗左侧列出本次提交;选中提交后,右侧列出变更文件。双击文件打开差异卡。没有上游时自动设置上游。
- 更多菜单包含:
- 提交:提交已暂存、全部提交、修正、签收、撤销上次提交。
- 更改:放弃全部更改。
- 拉取与推送:同步、同步变基、拉取变基、从远程拉取、强制推送、推送到远程、发布分支、从所有远程抓取、推送标签。
- 分支:设置或取消当前分支上游、中止变基。
- 远程:添加或删除远程、删除远程分支。
- 存储:贮藏已跟踪或已暂存文件,应用、弹出或删除任意贮藏,清空贮藏。
- 标记:删除本地或远程标签、推送标签。
- 其他:克隆仓库、切换排序方式。
工作树
- 左侧提供新建、删除和刷新。
- 列表显示名称、分支和路径;当前工作树带勾。
- 新建时可选基础分支、是否创建新分支、项目名称和位置,并实时显示目标路径。
- 创建后不切换当前仓库。
- 不能删除当前工作树。
控制台
- 显示
~/.dsh/guojinpeng/dsh-git4idea/log/console.log的尾部 256 KiB,最多绘制 2000 行。 - 每条 git 命令记录命令行、标准输出和标准错误,时间戳使用北京时间。
- 只在控制台可见或 git 操作结束后刷新,不轮询。
- 文件超过 5 MB 时轮转为
console.log.1。 - 右键菜单只有“全部清空日志”,点击后立即清空,不确认。
安全与恢复
- 破坏性操作需要确认。
- 删除主分支需要输入分支名。
- 强制推送使用
--force-with-lease。 - 分支删除、贮藏删除和丢弃更改进入撤回浮窗,可从通知中的“撤回”恢复。
- 合并、变基、cherry-pick、还原或 bisect 未结束时,分支级操作会被阻止并给出提示。
布局与反馈
- 宽面板为三栏:分支树占 1/5,提交列表占剩余空间,提交详情占 2/5。详情区上方 2/3 为变更文件,下方 1/3 为提交说明。
- 窄面板使用纵向堆叠;短面板使用“变更/历史”分段切换和可折叠分支树。
- 分隔条可拖动,双击复位,方向键微调。尺寸按面板形态保存。
- git 结果和异常显示在右下角通知。默认 5 秒消失;悬停暂停计时,移开后重新计时。通知默认折成 2 行,悬停展开,长内容可滚动。
语言
- 内置中文和英文。
- 其它语言标签回退到英文。
安装
dsh plugin --profile web add -w @guojinpeng/dsh-git4idea
将 web 替换为你使用的 profile 名称。包内的 cordis.patch.yml 会并入 profile,不需要手写挂载行。宿主半改动后重启 dsh web;客户端半改动后刷新页面。
配置
没有设置页。面板自动保存以下状态:
- 分支树展开状态
- 每个会话选中的仓库
- 收藏的分支
- 动作条布局
- 分栏尺寸
- 行内差异偏好
保存位置:~/.dsh/guojinpeng/dsh-git4idea/config/settings.json。
| 行为 | 默认值 |
|---|---|
| 会话标签行的 Git 页 | 常开 |
| 输入框分支胶囊 | 常显 |
| 动作条 | 七个默认动词 |
| AI 写提交信息 | 跟随会话模型路由;无会话模型时用宿主第一个模型 |
开发
宿主半入口是 src/index.js。客户端半拆成 src/client/*.js 片段,由 src/utils/build-client.js 按固定顺序拼成 src/client.js。客户端只能加载平台基线模块,片段之间不能互相 import。
npm test # smoke + api + graph + repos
npm run build:client # 修改 src/client/*.js 后重建 src/client.js
npm run build:check # 只校验生成文件是否一致
npm run i18n # 同步 locale/*.json 到内联字典并重建
npm run i18n:check # 只校验,不写文件
文案来源是 locale/zh.json 与 locale/en.json 的 messages。客户端运行时不能读取 JSON 文件,因此 src/utils/i18n.js 会把它们写入 src/client/locale.js 的生成块。
许可
MIT。原始实现版权归 KannaKuron,见 LICENSE。
图标路径数据取自 IntelliJ Platform,Apache License 2.0,版权归 JetBrains s.r.o.。
Plugins associés
dsh-web (dsh-git-graph)
zhu1090093659/dsh-web
dsh-web-ui (dsh-git-graph)
zhu1090093659/dsh-web-ui
codex-guard (dsh)
akimiya-z/codex-guard
dsh-file-review
left0ver/dsh-file-review