packages/dsh-git-graph
zhu1090093659/dsh-web输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Git 侧边栏面板:提交图谱、超前/落后跟踪、分支操作及改动 Diff 一键带入对话。
DSH Web GUI 的 Git 面板插件:分支管理(切换 / 拉取 / 抓取 / 重命名 / 删除 / 合并)+ GitLens 风格的提交图谱。
↑ahead / ↓behind,双击切换分支(当前分支双击为拉取)git fetch --all --prune);拉取/推送/同步进行中会显示进度条与转圈动画,并可随时取消(真正中止后台 git 进程)git add -A && git commit -mgit push 当前分支git stash push(可带说明)/ git stash popgit status --porcelain)M 修改 / A 新增 / U 未跟踪 / D 删除 / R 重命名 / C 冲突),含改动的目录带一个圆点;标记跟随 git status 自动刷新,不需要手动刷新文件树+新增 / −删除 统计;「源码」一键回到官方文本预览,「暂存」一键 git add,「保存」把改动写回工作区<<<<<<< / ======= / >>>>>>> 冲突块,每块提供 「✔ 采用当前更改」、「✔ 采用传入更改(分支名)」、「✔ 两者都保留」 三个一键动作--rebase,绝无变基死锁冲突rebase --abort 救援)↓101)胶囊徽章支持直接点击一键拉取git revert --no-edit)文件树改动标记(有改动的文件名后跟状态字母并着色,含改动的目录带圆点,与 VS Code 资源管理器一致):
Git 对比视图(全屏双栏 Diff,行号对齐,未改动区域可折叠,头部含增删统计与操作按钮):
合并冲突一键解决(全景行号上下文)(冲突核心与上下各 8 行代码直接置于首屏并带行号,远处未冲突区自动折叠;三动作直接落笔,保存即写回):
官方右侧栏原生标签页(与内置「文件」并列,展开/收起、宽度拖拽、标签切换全部由官方侧边栏接管):
分支面板(本地/远程分支、ahead/behind、双击切换、右键菜单):
分支胶囊(输入框上方快速切换分支):
提交图谱(三栏可拖拽列宽、虚拟化滚动):
0.1.5-alpha.1(@deepseek-ai/dsh-client-ui-sidebar-right ≥ 0.1.5-alpha.1,peerDependencies 已声明)。0.1.5-rc.2、0.1.6-alpha.1/2、0.2.0-rc.1(当前最新)。0.1.5-alpha.1 起齐备,跨版本通用):
sidebar.right.pane.tab(官方声明 scope: 'session')下发标准 props sessionId(当前会话身份)sessions.list.getSnapshot() 的 ids 与 byId[id].cwd(工作区根目录)current 字段 —— 官方已于 0.2.0-rc.1 将其移除(该服务注释写明 "view selection remains outside the Controller"),当前会话身份只能从插槽标准 props 获取dsh plugin --profile web add dsh-git-panel
重启 dsh web,打开绑定 git 仓库的项目会话,然后点开右上角的右侧栏,选择 Git 标签页。
运行环境要求:需要 当前这套 DSH Web(
>=0.1.5-alpha.1,推荐0.1.6-alpha.1及以上;即带官方右侧栏多标签框架@deepseek-ai/dsh-client-ui-sidebar-right的版本)。 文件树改动标记、Git 对比标签依赖右侧栏的标签类型注册与文件资源地址;「在官方文件预览里手动切换到 Git 变更对比」还依赖 DSH 自带的@deepseek-ai/dsh-client-ui-sidebar-documentpreview(0.1.5 起的官方 web bundle 默认包含)。 在更早的 DSH(例如0.1.2-rc.1)上这些能力不会生效——那些版本没有右侧栏标签注册表,也没有统一的dsh-resource://file地址模型。
本地开发时可用
dsh plugin --profile web add link:/path/to/dsh-git-panel以链接方式安装,修改源码后npm run build并刷新页面即可生效。
使用中遇到问题或有功能建议?欢迎到 GitHub Issues 反馈,帮助我们把插件做得更好。
MIT