前言¶
在 DeepSeek Harness(DSH)Web GUI 裏寫代碼、跑智能體會話時,工作區往往就是某個 Git 倉庫。常見做法是切到終端或 IDE 做分支、暫存、提交、推送;會話一多、側邊欄來回點不同工作區,還要自己記住「當前 cwd 對應哪棵倉庫」。@xia-sc/dsh-git 把一整套 Git 操作收進可摺疊懸浮面板,並隨當前會話的工作區實時重新綁定——換會話即換倉庫視圖,不必手動對齊路徑。
這是什麼¶
@xia-sc/dsh-git 是 DSH Web 的客戶端 Git 管理插件(維護者 xia-sc,npm 包名 @xia-sc/dsh-git,當前資料版本 0.7.1,MIT 許可證)。形態包括:
- 輸入框左上角的狀態膠囊(
conversation.input.dock):顯示分支摘要,或提示「當前工作區不是 Git 倉庫」;點擊展開/收起面板。 - 懸浮面板(
shell.overlay):摺疊時不渲染 DOM,不擋輸入框;展開後提供分支、拉取、提交、推送、變更列表與差異查看等完整工作流。
兩處界面共用同一 store,並隨會話及其 cwd 切換而重新綁定;切換工作區會清空已選文件,避免串倉庫。
核心功能¶
README 列出的工作流如下(均已實現於面板與 RPC):
- 分支:切換(帶髒樹預檢與警告)、基於本地或遠端引用(如
origin/feature/x)新建分支。 - 遠端:拉取更新(fetch)、拉取合併(pull 僅快進
git pull --ff-only)、推送(push)。 - 本地提交鏈:暫存全部(
git add --all)、提交(commit,可用 AI 起草提交信息)、狀態(status)、最近提交列表。 - 變更:未提交文件列表(路徑 + 狀態色標籤);點擊某行在右側打開 unified diff(未暫存/已暫存可切換,欄寬可拖,大 diff 有截斷與展開)。
其他界面與行爲要點:
- 操作反饋固定在面板最上方一行;Git 冗長輸出收在「詳情 ▾」。
- 刷新時保留面板內容,僅頂欄顯示「刷新中…」。
- 提交區順序:暫存全部 → 選擇 AI 生成依據(已暫存/未暫存/全部)→ ✨ AI 生成 → 手寫或修改後提交;提交本身不會隱式暫存。
- 頂欄 ⚙ 可設提交信息語言(含「自動」與多種語言),存於瀏覽器
localStorage(鍵dsh-git.commitLanguage)。 - 宿主側 Git 經
execFile(無 shell)、帶超時;瀏覽器通過自持路由/dsh-git-rpc調用(與 connection 插件 RPC 信封一致,安全圍欄同/api)。
環境要求:資料寫明需 dsh ≥ 0.1.5-rc.1(自持 HTTP 路由);會話綁定邏輯適配 dsh ≥ 0.1.6-alpha.2 起由會話座位提供當前會話的方式。
安裝與啓用¶
在 Web 配置檔下安裝(命令來自 README 原文):
dsh plugin --profile web add @xia-sc/dsh-git
也可從 GitHub 同源安裝:
dsh plugin --profile web add https://github.com/xia-sc/dsh-git
安裝後重啓 dsh web(bundle 與瀏覽器 roster 在啓動時組合)。刷新頁面後,若當前會話工作區是 Git 倉庫,輸入框上方會出現 dock 膠囊,點擊即可展開面板。
卸載:
dsh plugin --profile web remove @xia-sc/dsh-git
典型用法¶
- 打開 DSH Web,選中一個工作區爲 Git 倉庫的會話;點擊輸入框左上角膠囊,展開懸浮面板。
- 看狀態行:未提交計數、相對上游的領先/落後。需要更新遠端時,用網絡工具條 拉取更新 或 拉取合併(僅快進);再 推送。
- 改完代碼後,在「變更」卡片裏點文件行查看 diff;確認無誤後點 暫存全部,可選 ✨ AI 生成 提交說明(默認依據「已暫存」),在輸入框用 Ctrl/Cmd+Enter 提交。
- 換分支:用分支切換器;有未提交修改時會先列出受影響文件並警告,可取消或 仍要切換。要開新分支:點「+ 新建分支」,填名稱並選基分支後確認。
AI 生成走當前會話的模型路由,並攜帶 sessionId(部分網關要求會話親和);失敗時會在「上次操作輸出」裏顯示本地化原因。
適用場景與注意¶
適合:主要在 DSH Web 裏對話、改代碼,希望少切終端、且面板隨會話 cwd 自動對齊倉庫的開發者。
注意:
- 插件在 DSH 宿主進程權限下執行
git與網絡操作,安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。 pull不做非快進合併;髒樹切分支可能被 Git 拒絕,面板會盡量給出可讀提示。- 社區目錄 skillhub.cn 上的插件頁 與 GitHub 爲公開信息來源;DSH 生態是「一切皆插件」,該目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
@xia-sc/dsh-git 把分支、拉取、暫存、AI 輔助提交、推送、狀態與可點擊 diff 收進隨會話移動的懸浮面板,適合在 Web GUI 裏完成日常 Git 循環。進一步瞭解功能與 RPC 細節見倉庫 README;安裝與索引見社區目錄頁與 GitHub:
- 目錄頁:https://www.skillhub.cn/plugins/xia-sc/dsh-git
- GitHub:https://github.com/xia-sc/dsh-git