dsh-git-management:在 DSH 右側邊欄完成 Git 與 GitHub 操作

前言

在 DeepSeek Harness(DSH)裏和 Agent 對話時,改代碼往往就在當前工作區裏完成。若每次暫存、提交、切分支或看 PR 都要切到終端或瀏覽器,對話上下文容易被打斷。常見做法是並排開一個 IDE 或終端窗口做 Source Control,但右側欄本身並未提供與 Cursor / VS Code 相近的 Git 面板。

dsh-git-management 是社區維護的 DSH 客戶端插件,在右側邊欄增加「源代碼管理」分頁,背後直接調用系統上的 git,變更狀態與終端裏 git status 一致,並可在同一欄內查看 diff、提交圖、worktree 與 GitHub 信息。下面介紹它是什麼、能做什麼、如何安裝與常見用法。

這是什麼

  • 定位:DSH 外掛(客戶端),維護者 ET921,倉庫 ET921/dsh-git-management,已發佈 npm 包 dsh-git-management(當前資料中版本爲 0.1.2),授權 MIT。
  • 分類:客戶端;依賴 DSH >=0.1.1-rc.1,Node ^22.19.0 || >=24.0.0。
  • 核心思路:不內嵌 Git,Host 通過 subprocess 執行本機 git;面板是入口,文件差異、單次提交差異、工作樹、GitHub 均在右側開分頁,不蓋住主對話區。

插件目錄頁:skillhub.cn/plugins/ET921/dsh-git-management。社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝前建議自行查看源碼與許可證。插件以當前 DSH 進程權限運行,請確認本機 Git 與憑據配置符合你的安全要求。

核心功能

界面按區塊劃分,與 README 中的「介面地圖」一致。

區塊 作用
分支列 當前分支、ahead/behind、Fetch / Pull / Push
提交框 提交說明、全部暫存、amend
變更清單 已暫存 / 更改 / 衝突;點文件看差異
工作樹 同一 repo 的多個 checkout(含 DSH 的 .agents/worktrees/*)
Graph 提交列表與分支軌道;點某次提交看「提交差異」
GitHub 識別 origin;查看 repo / PR / Issue;可從當前分支新建 PR

提交與暫存:在「更改」列表 hover 文件可暫存、放棄、刪除未跟蹤文件;Ctrl+Enter 或點「提交」;支持「全部暫存」與「修改上次提交」;存在衝突時提交按鈕會停用並提示原因。

看差異:點文件打開「文件差異」分頁(雙欄行號、統一/並排);分頁頭可直接暫存或放棄。Graph 中點某一列打開「提交差異」,按文件豎排,只渲染有變更的 hunk。

同步與分支:分支名可切換;Fetch 僅更新遠端引用;Pull 爲快進合併;Push 推送(首次可設 upstream)。↑2 ↓1 表示本地領先 2、落後 1。

工作樹:可新建 worktree(例如落在 .agents/worktrees/<name>、分支 worktree-<name>),並打開爲另一 DSH 工作區,便於 Agent 並行改代碼。

GitHub:自動識別 origin(含 ssh/https、GitHub Enterprise)。GitHub token 存於本機 DSH 憑據區(權限 0600,與模型 API key 同一 store);推送仍走本機 git 憑據。面板可「忘記 token」清除。

其他:多 workspace 下拉切換;非 git 目錄可一鍵 git init;可見時每約 8 秒只讀 status(非文件監聽);錯誤與成功提示 sticky 在頂部。

已知邊界(來自 README):無內置衝突解決器;大倉庫首次 status --untracked-files=all 可能較慢;提交差異爲 hunk 級、單提交最多 60 個文件;修改 Host 側代碼需完全重啓 DSH Desktop,僅改 client 可 Ctrl+R。

安裝與啓用

從插件市場(npm)安裝——資料給出的命令爲:

dsh plugin --profile web add dsh-git-management

另可在 DSH Desktop 的 Plugin Manager 安裝 Release 預構建包 dsh-git-management.tgz,無需本地構建。

本地開發(需自行 build):

npm install
npm run build

在 profile 的 cordis.patch.yml 末尾插入插件 id git-management / name dsh-git-management,並在 profile 的 node_modules 下鏈接到本倉庫目錄,然後重啓 DSH Desktop。驗證構建:

npm run build

典型用法

打開面板

右側邊欄與 session 綁定,須先打開 session。

  1. 右側欄切到「開始」,向下找到「源代碼管理」卡片。
  2. 點擊後右側出現 Git 分頁,默認選中當前 workspace 的 repo。

若看不到卡片:確認已開 session,必要時 Ctrl+R 重載;Host 與 client 版本不一致時出現 unknown action: commitDiff 時,需從菜單/托盤完全退出 DSH Desktop 再啓動。

改完代碼並推送

  1. 「更改」列表中 hover 文件點 + 暫存,或「全部暫存」。
  2. 填寫提交說明後提交。
  3. 分支列點 Push(首次會設 upstream)。

查看某次提交改了什麼

  1. 滾動到 Graph,點目標提交行。
  2. 右側打開「提交差異」分頁,按文件查看 hunk。

切分支並同步

  1. 點分支名選擇分支。
  2. Fetch 更新遠端引用;Pull 快進合併;Push 推送。

用 worktree 讓 Agent 並行工作

  1. 在「工作樹」點 +,輸入名稱(如 fix-ui)。
  2. 創建在 .agents/worktrees/fix-ui,分支 worktree-fix-ui。
  3. 點「開啓」作爲另一 DSH 工作區使用。

開 Pull Request

  1. 先將分支 Push。
  2. 在「GitHub」區點「新建 PR」,填寫標題、說明與目標分支;或使用「在 GitHub 打開」。

適用場景與注意

適合:在 DSH 內完成日常 Git 流程、快速 review diff 與提交歷史、需要與 Agent 對話同時管理分支與 PR 的開發者;不熟悉 git 命令時也可按 README「常見情境」逐步點擊操作。

注意:

  • 面板狀態與終端一致的前提是使用同一 repo 路徑與本機 git;憑據問題需在終端側配置(例如先 git push 讓 Credential Manager 記住)。
  • 看不到同事新分支時,先在 Graph 或分支列執行 Fetch,更新 remote-tracking ref。
  • 架構上 UI 經 POST /dsh-git/api 調 Host,Host 以 argv 調用 git(不經 shell);請求 path 須在已註冊 workspace 內,否則 403。使用 GitHub 功能需在本機配置 token(存 DSH 憑據區,不由 client 隨請求攜帶)。

結尾

dsh-git-management 把 Source Control 收進 DSH 右側欄:暫存、提交、分支、同步、Graph、worktree 與 GitHub 集成,對話不必爲 Git 頻繁切窗。如需詳情與截圖,見 GitHub README;插件索引見 SkillHub 目錄頁。

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

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

小夜