dsh-worktree:DeepSeek Harness (DSH) 的 Git Worktree 工具

在 DSH 中進行智能體開發時,經常需要在獨立分支上並行推進任務,同時保留當前對話的上下文。原生 DSH 沒有直接提供這種級別的 git worktree 管理,dsh-worktree 插件填補了這一空白。

插件簡介

dsh-worktree 是 Jiazliang 開發的一款 DSH 工作流插件。它的核心價值是提供類似 git fork 的操作:爲任意工作區或會話創建隔離的 git worktree(獨立分支),並在其中打開一個新會話。

插件提供了「創建 → 使用 → 刪除」的完整閉環,支持會話分叉(繼承對話歷史),能夠實現互不干擾的並行開發。

核心功能

1. 創建獨立 Worktree

在工作區菜單點擊「創建 Worktree」,可以基於當前倉庫創建一個獨立的 git worktree 和獨立分支。

  • 目錄隔離:新工作區出現在側欄,新會話的當前工作目錄(cwd)指向倉庫外層的 <倉庫名>.Worktree/<id> 目錄。
  • 自動打開:創建後會自動打開一個新會話,且該會話使用獨立分支。
  • 零干擾:主工作區的 .git 目錄不被觸碰,主倉庫的 git status 保持乾淨。

2. 分叉到 Worktree

在會話菜單點擊「分叉到 Worktree」,可以帶着當前對話的所有上下文進入新的 worktree。

  • 繼承歷史:新會話繼承當前會話的全部對話歷史。
  • 配置繼承:繼承當前會話使用的 preset 與模型設置,無需重新配置。

3. 刪除 Worktree

在插件創建出來的 worktree 工作區上,菜單會多出一行「刪除 Worktree」。

  • 強制拆除:強制刪除 worktree 目錄、對應分支,並移除工作區登記。
  • 安全護欄:該操作只對插件創建的 worktree 工作區顯示,普通工作區看不到這一行,防止誤刪主倉庫。
  • 數據保留:注意,此操作會丟棄未提交的更改,但會話日誌會保留(與 DSH 原生行爲一致)。

4. 兼容性與界面

  • 自動適配:優先使用新版 DSH 的原生菜單插槽,舊版構建自動降級爲 DOM 注入適配器。
  • 中文界面:菜單項採用中文命名,與 DSH 內置條目保持對稱。

安裝與啓用

使用官方插件命令進行安裝:

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

安裝完成後,需要重啓 dsh web 應用才能生效。

典型用法

場景:從主工作區分出一條獨立開發線

  1. 在側欄的某個工作區(文件夾)上打開菜單,點擊「創建 Worktree」;
  2. 側欄出現新工作區,新會話自動打開,此時工作目錄已指向獨立的 worktree(獨立分支);
  3. 在該會話中進行開發、提交等操作,所有更改隻影響該分支;
  4. 如果需要帶着當前的對話上下文另起一條線,在會話菜單點「分叉到 Worktree」,子會話將繼承全部歷史並落在新的 worktree 上;
  5. 任務完成或不再需要該分支時,在該 worktree 工作區的菜單點「刪除 Worktree」,目錄和分支將被清理。

注意事項

  • 前置條件:創建需要目標工作區是 git 倉庫(能從 cwd 解析出倉庫根)。
  • 刪除行爲:「刪除 Worktree」是破壞性操作,未提交的更改會隨目錄刪除而丟棄,但會話日誌會保留。
  • 路徑結構:新會話的 cwd 指向倉庫外層的 <倉庫名>.Worktree/<id> 目錄。

結語

dsh-worktree 通過插件化的方式爲 DSH 增加了 Git Worktree 能力,適合需要在同一倉庫內並行管理多個分支和會話的開發者。更多細節可查閱插件目錄或源碼倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜