前言¶
用 DeepSeek Harness(DSH)做 AI 編程或 Agent 開發時,版本管理往往要切到終端、獨立 Git 客戶端或 IDE 才能看清提交歷史、分支關係和工作區改動。上下文一斷,對話裏的代碼討論和倉庫狀態就對不上。
dsh-git-graph 是 DSH Web GUI 的客戶端插件,把提交歷史圖、分支過濾、文件 diff 和 VSCode 風格的未提交改動面板直接嵌進會話頁。下面介紹它做什麼、怎麼裝、日常怎麼用。
這是什麼¶
dsh-git-graph 由維護者 1841220388zzzcccxxx-star 開源,當前版本 0.11.0,協議爲 MIT。插件在 DeepSeek Harness 對話界面內提供嵌入式 Git 倉庫可視化:查看提交歷史、管理分支、對比 diff、處理工作區改動,無需離開當前會話。
掛載位置在會話頁的「Git 圖譜」標籤,位於「軌跡」標籤旁。打開哪個對話,默認就顯示該對話工作區對應的 git 倉庫;非 git 倉庫的對話會顯示空態提示。
核心功能¶
提交歷史與分支¶
提交列表採用 GitHub 風格佈局,本地分支與遠程分支分組展示,支持摺疊與着色。分支過濾通過勾選控制:勾選則顯示該分支,不勾則完全隱藏;全部不勾選時列表爲空。
提交行可點擊查看詳情,包含提交信息、文件變更列表和單文件 diff。Ctrl+點擊可選中兩次提交進行對比。提交詳情內支持查看單個文件的歷史提交。
大倉庫採用分頁加載,每頁 200 條,可繼續加載更多。
跟隨對話與多倉庫¶
圖譜默認跟隨當前對話的工作區。v0.11 起支持頂欄「打開」或空態中的「打開文件夾」:可瀏覽磁盤(驅動器到目錄逐層進入,帶 git 標記),選擇任意文件夾查看其版本管理。添加過的倉庫會持久保存,頂部下拉可隨時切換。
可選配置 config.repo 或 config.repos 作爲初始可訪問倉庫白名單;不配置也能用。運行中由會話工作區發現的倉庫也會自動加入可訪問集合。
未提交改動¶
圖譜頂部常駐 VSCode 風格的未提交改動面板,分爲已暫存、更改、未跟蹤三組。每行顯示狀態徽標(A/M/D/R/U/?)、增減行數,點擊可展開單文件 diff(含語法高亮)。重命名顯示爲「舊 → 新」,未跟蹤文件可直接查看內容。
行內支持暫存、取消暫存、還原;頂欄支持全部暫存與提交。勾選複選框可批量暫存、取消暫存、還原、忽略或提交選中項,破壞性操作前會彈確認框。提交對話框內可依據 diff 由 AI 生成候選提交信息,可編輯後提交。
遠程與分支操作¶
頂欄提供拉取(git fetch)與推送(git push 當前分支,確認後執行)。分支組標題右鍵:本地分支可切換、推送、刪除(已合併纔可刪,HEAD 受保護);遠程分支可拉取、複製遠程分支名。遠程分支組頭始終顯示,並標註「已同步」或「已包含」狀態。
提交行右鍵支持複製哈希或消息、查看詳情、打標籤、從提交新建分支、打開 GitHub 提交頁、複製倉庫路徑、在文件管理器中打開。
交互與狀態¶
常用快捷鍵:Ctrl+F 搜索、Ctrl+/ 快捷鍵面板、Ctrl+B 摺疊或展開全部分支組、↑↓/j/k 導航、Enter 查看詳情、Esc 關閉。
頁面可見時每 5 秒自動監聽工作區改動與新增提交。分支過濾、分組開關、面板摺疊狀態、主題等會本地保存,刷新後保留(v0.8 起鍵統一爲 gg2-*)。
主題支持自動跟隨、深色、淺色,以及 8 種風格方案。打開圖譜時會靜默檢查 GitHub 最新版本,發現新版本時頂欄提示,可一鍵下載替換(自動備份舊版,失敗回滾),重啓後生效。
安裝與啓用¶
DSH 生態採用「一切皆插件」的思路;SkillHub(https://www.skillhub.cn)是社區插件目錄,與 DeepSeek、幻方無官方從屬關係。安裝前建議閱讀插件源碼與 MIT 許可證。插件以當前 dsh 進程權限運行,可訪問其能讀寫的路徑與 git 倉庫。
1. 把插件加入 profile¶
編輯 DSH web profile 的 package.json,添加依賴:
{
"dependencies": {
"dsh-git-graph": "file:./plugins/git-graph"
}
}
plugins/git-graph 爲插件源碼目錄,按實際路徑調整。
2. 掛載 bundle¶
在 profile 的 cordis.patch.yml 中加入:
- insert:
- id: git-graph
name: dsh-git-graph
config:
repo: "C:/path/to/your/repo"
config.repo / config.repos 爲可選的初始倉庫白名單;不配置時可通過圖譜頁「打開」隨時添加。
3. 安裝並重啓¶
pnpm install
然後重啓 dsh web(或使用一鍵重啓腳本)。打開 http://127.0.0.1:3080 ,在任意會話頁點擊「Git 圖譜」標籤即可使用。
典型用法¶
| 操作 | 說明 |
|---|---|
| 會話頁「Git 圖譜」標籤 | 查看當前對話工作區的提交與改動 |
| 頂欄「打開」或空態「打開文件夾」 | 瀏覽磁盤,選擇其他 Git 倉庫並加入列表 |
| 頂部倉庫下拉 | 在已添加的多個倉庫間切換 |
| 分支組標題 | 摺疊或展開該分支下的提交 |
| 分支過濾勾選框 | 控制哪些分支出現在列表中 |
| 圖譜頂部「未提交改動」 | 查看暫存/更改/未跟蹤,展開 diff,執行暫存或提交 |
| 提交行 | 點擊查看詳情;Ctrl+點擊與另一提交對比 |
| 提交行右鍵 | 複製、打標籤、新建分支、打開 GitHub 提交頁等 |
| 頂欄拉取 / 推送 | 執行 git fetch 或 push 當前分支 |
| 底部狀態欄「未提交改動」 | 點擊滾動到頂部改動區塊 |
| 刷新 | 重新加載倉庫數據 |
開發時,服務端 index.js 改動需重啓 dsh web;頁面 web/index.html 改動刷新即生效。Windows 下可用 sync-deploy.ps1 同步到 node_modules/dsh-git-graph/。
適用場景與注意¶
適合在 DSH 內做 AI 編程、希望同一界面看清提交歷史、分支與工作區改動的開發者。需要比純命令行更直觀的 Git 可視化、又不想頻繁切換外部客戶端時,這個插件能補上缺口。
注意:插件依賴本機已安裝的 git,並通過 DSH 進程調用;對倉庫的讀寫在當前用戶權限下進行。遠程推送、刪除分支、還原文件等操作會改動倉庫,執行前留意確認框。自動更新會從 GitHub 拉取新版本替換本地插件文件,若環境受限可關閉或手動管理版本。
鏈接¶
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/1841220388zzzcccxxx-star/dsh-git-graph
- GitHub 倉庫:https://github.com/1841220388zzzcccxxx-star/dsh-git-graph
在 DSH 會話裏把 Git 狀態留在視線內,能減少切工具的成本;按上文步驟安裝後,從「Git 圖譜」標籤即可開始用。