deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
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.
PROJECT TOPICS
PROJECT README
DSH(DeepSeek Harness)的 git worktree 插件:像 fork 一样,为任意工作区 / 会话创建隔离的 git worktree(独立分支),并把新会话绑定到该 worktree 打开——「创建 → 使用 → 删除」完整闭环,互不干扰地并行推进多个任务。
dsh-worktree 为 DSH 提供三条工作区 / 会话菜单操作,覆盖「创建 → 使用 → 删除」的完整闭环:
从任意工作区一键创建:
<仓库名>.Worktree/ 容器里,
不进入仓库、不触碰 .git,主工作区的 git status 保持干净。在插件创建出来的 worktree 工作区上,菜单会多出一行「删除 Worktree」:
<仓库名>.Worktree/ 容器目录会一并移除。在任意会话中一键完成「建 worktree + 分叉会话」:
| 菜单位置 | 菜单项 | 图标 | 说明 |
|---|---|---|---|
| 工作区(文件夹)⋯ 菜单 | 「创建 Worktree」 | 复制副本 | 建 worktree + 空会话 |
| 工作区(文件夹)⋯ 菜单 | 「删除 Worktree」 | 垃圾桶(危险红) | 仅对插件创建的 worktree 工作区显示,强制拆除 |
| 会话 ⋯ 菜单 | 「分叉到 Worktree」 | 复制副本 | 建 worktree 并分叉会话,继承全部对话历史 |
# 在 dsh 的 web profile 目录里用 pnpm 安装(dsh plugin 即转发到 pnpm):
dsh plugin --profile web add file:D:/Documents/GitHub/dsh-plugins/dsh-worktree
安装完成后重启 dsh web 应用即可生效。
dsh plugin --profile web add github:Jiazliang/dsh-worktree
dsh plugin add 会自动完成包安装与 bundle 注册,重启 dsh web 应用后生效。
典型场景:从主工作区分出一条独立开发线
注意:「删除 Worktree」是破坏性操作——未提交的更改会随目录删除而丢弃, 但会话日志会保留(与 DSH 原生「删除工作区」一致,会话落入"未分组")。
# 在 dsh 的 web profile 目录执行:
pnpm remove dsh-worktree
为什么我的主仓库工作区看不到「删除 Worktree」? 这是设计使然——该操作仅对插件创建出来的 git worktree 工作区显示,普通工作区 永远不会出现这一行,从根源上杜绝误删主仓库。
「创建 Worktree」提示不是 git 仓库? 创建需要目标工作区是 git 仓库(能从 cwd 解析出仓库根)。非仓库目录会给出报错提示。
创建后新会话在哪里工作?
新会话的 cwd 指向仓库外层的 <仓库名>.Worktree/<id> 目录,处于独立分支上,
与主工作区完全隔离。
「删除 Worktree」后会话还在吗? 在。会话日志不会删除(DSH 无会话删除 API),与原生「删除工作区」行为一致。
欢迎提交 Issue 与 PR!
pnpm check && pnpm verify,保持命名对称、零 core
包改动等既有设计约束;MIT © dsh-worktree contributors
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。