DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

Jiazliang /

Jiazliang/dsh-worktree

已验证

Fork-like git worktree for DeepSeek Harness (DSH): create an isolated git worktree from a workspace/session and open a new session in it — optionally forking the conversation so the child inherits all history and works on its own branch.

★ 0 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub
README来源: main@f6fd2686

dsh-worktree

DSH(DeepSeek Harness)的 git worktree 插件:像 fork 一样,为任意工作区 / 会话创建隔离的 git worktree(独立分支),并把新会话绑定到该 worktree 打开——「创建 → 使用 → 删除」完整闭环,互不干扰地并行推进多个任务。

Version License Node Platform PRs


目录

  • 它能做什么
  • 菜单项一览
  • 安装
  • 使用流程
  • 卸载
  • 常见问题
  • 贡献
  • 许可证

它能做什么

dsh-worktree 为 DSH 提供三条工作区 / 会话菜单操作,覆盖「创建 → 使用 → 删除」的完整闭环:

创建 Worktree(独立工作空间)

从任意工作区一键创建:

  • 独立分支 + 独立目录:基于当前仓库新建一个 git worktree(自动创建独立分支), 新工作区出现在侧栏;
  • 自动打开空会话:创建后自动打开一个新会话,cwd 指向新 worktree——从此在该 会话中做的所有操作都发生在独立分支上,与主工作区完全隔离;
  • 主工作区零干扰:worktree 目录放在仓库外层的 <仓库名>.Worktree/ 容器里, 不进入仓库、不触碰 .git,主工作区的 git status 保持干净。

删除 Worktree(清理不再需要的分支)

在插件创建出来的 worktree 工作区上,菜单会多出一行「删除 Worktree」:

  • 一键彻底拆除:强制删除 worktree 目录、对应分支,并移除工作区登记, 侧栏条目随即消失;
  • 安全护栏:该操作只对插件容器内的 git worktree 工作区显示——普通工作区 看不到这一行,绝无可能误删主仓库;
  • 自动收尾:如果这是最后一个 worktree,整个 <仓库名>.Worktree/ 容器目录会一并移除。

分叉到 Worktree(带着全部上下文继续)

在任意会话中一键完成「建 worktree + 分叉会话」:

  • 完整继承对话历史:新会话继承当前会话的全部对话,cwd 指向新 worktree;
  • 延续模型与预设:继承当前会话使用的 preset 与模型设置,无需重新配置;
  • 适合的场景:主分支改到一半想另开一条线试新方案、或让一个任务的分支独立于 主线推进——子会话在独立分支上工作,随时可回到主会话继续。

其它亮点

  • 即插即用:无需修改 DSH core,插件通过官方网关暴露接口、复用 DSH 公开服务, 升级 DSH 时无需跟随维护;
  • 兼容性自动适配:优先使用新版 DSH 的原生菜单插槽,旧版构建自动降级为 DOM 注入适配器,两种构建开箱即用;
  • 中文界面:菜单项与 DSH 内置条目一致采用中文,命名与同菜单现有条目保持对称。

菜单项一览

菜单位置 菜单项 图标 说明
工作区(文件夹)⋯ 菜单 「创建 Worktree」 复制副本 建 worktree + 空会话
工作区(文件夹)⋯ 菜单 「删除 Worktree」 垃圾桶(危险红) 仅对插件创建的 worktree 工作区显示,强制拆除
会话 ⋯ 菜单 「分叉到 Worktree」 复制副本 建 worktree 并分叉会话,继承全部对话历史

安装

方式 A:本地目录(开发 / 自用)

# 在 dsh 的 web profile 目录里用 pnpm 安装(dsh plugin 即转发到 pnpm):
dsh plugin --profile web add file:D:/Documents/GitHub/dsh-plugins/dsh-worktree

安装完成后重启 dsh web 应用即可生效。

方式 B:GitHub 仓库

dsh plugin --profile web add github:Jiazliang/dsh-worktree

dsh plugin add 会自动完成包安装与 bundle 注册,重启 dsh web 应用后生效。

使用流程

典型场景:从主工作区分出一条独立开发线

  1. 在侧栏的某个工作区(文件夹)上打开 ⋯ 菜单,点击「创建 Worktree」;
  2. 侧栏出现新工作区,新会话自动打开,cwd 指向独立 worktree(独立分支);
  3. 在该会话中自由工作——修改、提交都只影响这个分支;
  4. 想带着当前对话上下文另起一条线?在会话 ⋯ 菜单点「分叉到 Worktree」, 子会话继承全部对话历史并落在新的 worktree 上;
  5. 任务完成、不再需要该分支时,在该 worktree 工作区的 ⋯ 菜单点「删除 Worktree」, 目录、分支、登记一并清除。

注意:「删除 Worktree」是破坏性操作——未提交的更改会随目录删除而丢弃, 但会话日志会保留(与 DSH 原生「删除工作区」一致,会话落入"未分组")。

卸载

# 在 dsh 的 web profile 目录执行:
pnpm remove dsh-worktree

常见问题

  • 为什么我的主仓库工作区看不到「删除 Worktree」? 这是设计使然——该操作仅对插件创建出来的 git worktree 工作区显示,普通工作区 永远不会出现这一行,从根源上杜绝误删主仓库。

  • 「创建 Worktree」提示不是 git 仓库? 创建需要目标工作区是 git 仓库(能从 cwd 解析出仓库根)。非仓库目录会给出报错提示。

  • 创建后新会话在哪里工作? 新会话的 cwd 指向仓库外层的 <仓库名>.Worktree/<id> 目录,处于独立分支上, 与主工作区完全隔离。

  • 「删除 Worktree」后会话还在吗? 在。会话日志不会删除(DSH 无会话删除 API),与原生「删除工作区」行为一致。

贡献

欢迎提交 Issue 与 PR!

  • 报告问题:请描述复现步骤、DSH 版本、插件版本以及浏览器控制台报错;
  • 提交代码:请先通过自检 pnpm check && pnpm verify,保持命名对称、零 core 包改动等既有设计约束;
  • 提交信息:遵循仓库现有的 conventional commits 风格。

许可证

MIT © dsh-worktree contributors

—/ 5

暂无评分

已验证 DSH bundle

Commit f6fd26867213

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于