跳到正文
dsh-market 浏览插件 GitHub EN

LaoYueHanNi/dsh-git-worktree

在 Web 输入框切换分支、以真实工作区方式创建隔离的 git worktree。

Star 数 ★ 1 分类 Git 与代码评审 收录于 2026-08-16

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:LaoYueHanNi/dsh-git-worktree

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README

Web 界面中的 dsh-git-worktree

简体中文 | English

一个 dsh 插件:在 Web 界面进行简单的分支与 worktree 管理。输入框工具行显示当前分支 —— 选其他分支原地切换;勾选**「工作树」**则获得一个注册为真实工作区的隔离 worktree,效果见上图。

仓库:https://github.com/LaoYueHanNi/dsh-git-worktree

功能

  • IDEA 风格分支选择器:分支菜单把 / 视为文件夹层级 —— 可折叠文件夹、末段标签,当前分支所在链路默认展开并居中。单击选中(蓝底),双击或 Enter 弹出右侧确认弹层。左侧工具栏提供定位当前分支全部展开/折叠;底部搜索保留匹配分支的祖先文件夹并高亮命中字符;超长标签悬停显示全名。
  • 分支切换:从 chip 菜单选分支、确认后原地 git switch。在 worktree 会话内只作用于该 worktree。
  • 工作树隔离:空白会话上勾选**「工作树」**再选分支,在 ~/.dsh/gitworktree/<仓库>-<分支>/ 下执行 git worktree add 并注册为真实工作区,跳转到新目录的空白会话。重复选同一分支直接复用;失效注册自动 prune 恢复。
  • 存放根路径可配设置 → Git 工作树 —— 原生目录选择器,自动保存。

安装

从 GitHub 安装(推荐)

dsh plugin --profile web add github:LaoYueHanNi/dsh-git-worktree

包声明了 dsh.bundleadd 会自动把插件挂进 profile 的层栈,无需手动改配置。构建产物 lib/ 随仓库提交(没有 prepare 脚本),git 安装开箱即用,无需任何构建白名单。需要 web profile(dsh web)。

从本地目录安装(开发调试用)

dsh plugin --profile web add link:D:/Code/dsh-worktree

link: 安装的是符号链接:重新构建插件后重启 dsh web 即可生效。

更新

dsh plugin --profile web update dsh-git-worktree

移除

dsh plugin --profile web remove dsh-git-worktree

插件会从 profile 移除并停止加载。~/.dsh/gitworktree/ 下的 worktree 目录与设置文件会保留 —— 需要时手动删除。

开发

先构建一次插件:

npm install
npm run build && npm run build:client
npm test                # vitest(41 项测试)
node scripts/smoke.mjs  # 基于构建产物的真实 git 冒烟

刻意不设 prepare 脚本。 编译产物 lib/ 已提交进仓库。pnpm ≥ 10 默认拒绝执行 git-hosted 依赖的构建脚本,除非加入白名单(报错 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED),因此若保留 prepare,每个用户用 github: 安装都会失败。改为随仓库分发预构建产物后,dsh plugin add github:LaoYueHanNi/dsh-git-worktree 才能零配置开箱即用。改动 src/ 下的任何文件后,务必重新构建并提交更新后的 lib/,否则别人安装到的是旧产物:

npm run build && npm run build:client
git add lib/

临时挂载 —— 仅当次启动生效,不动 profile。在仓库旁建一个 cordis.yml 指向构建出的 host 半边(Windows 需要 file:/// 形式):

- insert:
    - id: git-worktree
      name: 'file:///D:/Code/dsh-worktree/lib/index.js'
dsh web --patch <插件目录>/cordis.yml

此模式只挂载 host 半边(/plugin/git-worktree/* 四条路由照常工作);分支 chip 依赖按包名解析的客户端 bundle,因此开发 UI 请用上面的 link: 安装方式:执行 npm run build && npm run build:client(或在插件目录跑 npx tsdown --watch)并重启 dsh web 后,浏览器端插件会自动热重载。

内容来自项目 README(GitHub)↗