在 DeepSeek Harness 中,開發者經常需要在會話上下文內直接管理倉庫。dsh-git-flow 插件在 Composer 工具欄中提供了一個分支芯片。打開它,可以瀏覽、切換分支,創建新分支,並對選中的文件子集進行提交——提交消息由會話模型根據 diff 自動生成。
安裝¶
插件依賴 Node ^22.19.0 || >=24.0.0 和 pnpm 10。
使用官方安裝命令:
dsh plugin --profile gitflow-web add https://github.com/hunan36/dsh-git-flow
安裝後,請在插件頁面啓用該插件。
功能概覽¶
該插件提供以下核心功能:
- 瀏覽分支
- 切換分支
- 創建分支
- 提交選中的文件子集
- 提交消息由會話模型根據 diff 自動生成
- Push(推送)
使用方式¶
在 Composer 工具欄中,點擊分支芯片(例如 [⑂ feature/login 3])打開菜單。菜單支持以下操作:
- 搜索分支
- 查看本地分支
- 新建分支
- 提交(Commit,僅在工作區有變更時啓用)
- 刷新狀態
安全邊界與行爲細節¶
插件在實現上做了以下安全與行爲限制:
- 會話隔離:瀏覽器只發送
sessionId,主機根據該會話解析倉庫路徑。頁面無法指定 Git 運行的目錄。 - 命令執行安全:參數總是以數組形式傳遞,不使用 shell 字符串。配置
stdin: 'ignore'和GIT_TERMINAL_PROMPT=0,確保憑證提示不會掛起調用。 - Push 行爲:
push命令永遠不會傳遞--force或--force-with-lease,僅推送當前分支到上游(若上游不存在則自動設置)。 - 提交範圍:提交面板僅暫存面板中勾選的文件。若未選中任何文件,會返回
git/no-files-selected,不會回退到隱式的git add -A。 - 分支切換:當工作區有未提交變更時,默認拒絕切換分支(返回
git/dirty-worktree)。僅當用戶在確認對話框中點擊第二次時,纔會發送--force強制切換。 - 丟棄變更:僅在確認對話框中選擇破壞性操作後執行。已跟蹤路徑回退到 HEAD(
git restore --source=HEAD --staged --worktree),未跟蹤路徑被移除(git clean -fd,不包含-x,保留忽略文件),衝突路徑被拒絕而非自動猜測。
依賴項¶
- Node.js:
^22.19.0 || >=24.0.0 - pnpm:
10
結語¶
dsh-git-flow 將 Git 操作直接嵌入到 DSH 會話流中,通過 AI 輔助生成提交信息,減少了手動編寫 Commit Message 的成本。