安装
在 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

简体中文 | 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.bundle,add会自动把插件挂进 profile 的层栈,无需手动改配置。构建产物lib/随仓库提交(没有prepare脚本),git 安装开箱即用,无需任何构建白名单。需要webprofile(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 后,浏览器端插件会自动热重载。