DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Xueria /

Xueria/dsh-git-workbench

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: master@87292094

Git Workbench

DSH Web GUI 的 Git 面板:侧边栏一个入口,管理当前项目的本地更改、提交历史和同步。 跟随当前项目,只用主题 token(明暗主题都成立),中英双语。

Git Workbench 界面截图

图:全部分支 视图(git log --all)下的提交历史 —— 左侧分支树(全部分支 / 本地 / 远程 / 标签)、 中间图谱与提交表、右侧选中提交的详情,以及提交行的右键菜单。

安装

plugin_manager  action: install_bundle  target: D:\Dev\language\ai\harness\git-workbench

装好后侧边栏出现 Git 图标。改过客户端代码后刷新一次页面。

项目

  • 自动跟随:打开面板就是当前会话所属项目(session 作用域 slot 返回 sessionId,再映射到工作区路径),切会话即换仓库
  • 切换器:列出全部工作区(标注是否 Git 仓库)、选目录、输入路径
  • 项目不是仓库时给「创建 Git 仓库」(git init);空仓库也能读出分支名

本地更改

  • 左「已暂存 / 未暂存」目录树:分层、折叠、文件夹级 + / −、全部折叠 / 展开
  • 右统一 diff,每个 hunk 可单独 暂存此块 / 取消暂存此块
  • 文件行 + 暂存、− 取消暂存、↺ 丢弃(需确认;未跟踪文件走 git clean)
  • 提交框:Ctrl/Cmd+Enter 直接提交、提交全部更改(-a)、修正上次提交(--amend);高度可上下拖动,双击复位

提交历史

  • 左侧筛选:全部分支(git log --all)/ 本地 / 远程 / 标签;双击本地分支即 checkout,+ 新建分支
  • 提交表:图谱泳道、搜索、↑/↓ 选择
  • 右键菜单:复制提交号 / 复制信息 / 检出此提交 / 还原 / 拣选 / 变基到此 / 回退到此
  • 详情栏:完整信息、作者、日期、父提交、变更文件;底部同一组操作

同步

  • 顶部 获取 / 拉取 / 推送
  • 推送面板:选远程、添加远程(名称 + URL 或本地路径)、设置上游(push -u)

界面

  • 左右栏宽和提交框高度都可拖:分隔区不画线,只有指针变化(col-resize / row-resize);双击复位,方向键微调,尺寸存在 localStorage
  • 危险操作先确认(丢弃、检出提交、还原、拣选、变基、回退);提交不弹窗
  • 执行结果和 git 报错显示在面板内提示条

结构

文件 说明
index.js Host:路由、CSRF 头校验、动作分发
git.js git 读写:log / refs / status / diff、hunk 拆分与 git apply、动作执行
client.js Browser:侧边栏入口 + 主面板(React,无 JSX、无构建)
cordis.patch.yml、locale/*.json、icon.svg 插件行、文案、图标

接口

GET  /git-workbench/state?repo=&rev=&limit=
GET  /git-workbench/commit?repo=&sha=
GET  /git-workbench/worktree?repo=
GET  /git-workbench/diff?repo=&path=&staged=1&untracked=1
GET  /git-workbench/remotes?repo=
POST /git-workbench/action     # 需请求头 x-git-workbench: 1
GET  /git-workbench/health

action:init、stage、unstage、discard、commit、fetch、pull、push、checkout、createBranch、 revert、cherryPick、reset、rebase、stageHunk、unstageHunk、addRemote。

  • push 接受 remote / branch / setUpstream,不带 remote 时等价 git push
  • 缺 x-git-workbench 头 → 403;坏路径 / 分支名 / 提交号 / 远程名 / URL 分别返回 bad-paths、bad-branch、bad-sha、bad-remote、bad-url
  • 所有参数以 argv 传给 git(不经 shell),GIT_TERMINAL_PROMPT=0 让缺凭据时快速失败

配置(可选)

- id: git-workbench
  name: '@local/git-workbench'
  config:
    repo: 'D:\path\to\repo'
    limit: 300

已验证

  • 空仓库:init、stage → unstage(无 HEAD 走 git rm --cached)、discard、分支名读取
  • 逐块暂存:两次改动拆成 2 个 hunk,stageHunk 0 后 --staged 只剩 1 个 hunk
  • 提交级动作:revert / reset --hard / cherryPick / rebase / createBranch
  • 远程:addRemote → remotes 返回 origin → push -u 成功(main -> main,upstream 变为 origin/main)
  • 输入校验、CSRF 403、目录树构建、模型字段引用、语言包键对齐、语法解析

未验证:面板视觉效果(无浏览器控制);对真实托管平台(GitHub 等)的推送(需凭据,本地 bare 仓库已跑通)。

已知限制

  • 没有 stash、remote 管理、标签创建、交互式 rebase
  • 暂存粒度到 hunk,未做行级选择
  • 冲突后需在终端处理
  • 提交列表未做虚拟滚动(默认最多 400 行)
—/ 5

No ratings yet

Verified DSH bundle

Commit 872920943f04

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout