前言¶
在 DeepSeek Harness(DSH)裏用智能體改代碼時,工作區往往會積累一批未提交的變更。若每次都要切到終端執行 git status、git add、git commit,再單獨打開歷史與 diff,流程會打斷在 Web 裏的連貫操作。社區插件 dsh-plugin-git-commits(維護者 simin-xxm,分類爲客戶端)在 Web UI 側邊欄增加 Git commits 入口,在同一界面完成變更查看、暫存提交,以及與遠端同步、瀏覽提交歷史與文件 diff。
這是什麼¶
該插件面向已運行 dsh web 的環境:在側邊欄掛載操作入口,通過宿主提供的只讀 API 與寫入 API 調用本機 git,不離開 Harness 即可完成常見版本控制動作。當前 package 版本爲 1.1.0,許可證 MIT,要求 DSH >=0.2.2-rc.1。
核心功能¶
Changes(變更)頁¶
- 工作區文件按 Staged / Unstaged(含未跟蹤)分組,展示
AMDRU標記及+n / -n行數。 - 可按文件切換暫存狀態,或在分組標題處一鍵 stage / unstage 全部。
- 並排 diff 帶行號:工作區對索引、索引對 HEAD;未跟蹤文件按新文件 diff 展示。
- 提交框支持
⌘/Ctrl + Enter提交,僅提交已暫存內容;按鈕顯示待提交文件數。 - Sync 執行
git fetch --all --prune,界面顯示落後↓n/ 領先↑n。 - Pull ↓n 拉取遠端提交,默認 rebase,可選 merge,並使用
--autostash保護未提交改動。 - Push 推送當前分支;首次推送使用
-u origin HEAD設置上游。 - 涉及遠端寫入的操作會先請求確認。
- Pull 衝突時顯示紅色橫幅列出衝突文件,並提供 Abort merge(
git rebase --abort/merge --abort)。
History(歷史)頁¶
- 提交列表含短 hash、作者、日期、主題,支持 Load more 分頁加載。
- 可查看單次提交涉及的文件列表,以及帶行號的統一 diff(增刪高亮、hunk 標題高亮)。
安裝與啓用¶
全局安裝:
dsh plugin add dsh-plugin-git-commits
安裝到指定 profile(各 profile 插件相互獨立):
dsh plugin --profile web add dsh-plugin-git-commits
安裝後需重啓 dsh web 宿主以便掛載 bundle,並用下列命令確認插件已加載:
dsh plugins list
本機需在 PATH 中提供 git;若可執行文件不在默認路徑,可設置環境變量 DSH_GIT_BINARY 爲其絕對路徑。
典型用法¶
- 重啓
dsh web後打開 Web UI,從側邊欄進入 Git commits。 - 在 Changes 中查看未暫存與已暫存文件,按需 stage 單文件或整組,在 diff 中核對改動。
- 填寫提交說明,使用
⌘/Ctrl + Enter或提交按鈕完成 commit(僅 staged 內容)。 - 使用 Sync 查看與遠端差距後,按需 Pull 或 Push;首次推送會自動設置 upstream。
- 切換到 History,瀏覽提交記錄,點選某次提交查看文件列表與統一 diff。
插件讀寫通過宿主路由完成(只讀 GET /git-commits-api/...,寫入 POST /git-commits-write/...),具體路徑與 JSON 體見項目 README。
適用場景與注意¶
適合: 已在 DSH Web 中開發、希望減少終端切換、在受控工作區內完成日常 Git 操作的開發者。
注意:
- 插件在 當前 dsh 進程權限 下執行
git命令;安裝與啓用前宜閱讀 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。 - 命令僅在
workspaceRegistry登記的工作區(及 profile 默認目錄)內運行,其它路徑會被拒絕(403)。 - 推送會改寫遠端分支,拉取會改寫工作區;界面會對這類操作要求確認。Pull 失敗可能留下衝突狀態,可用 Abort merge 回退到 pull 之前。
- 寫入請求需同源;
git通過 argv 數組調用,不經 shell。讀超時 20s,寫超時 120s。
DSH 生態主張「一切皆插件」;社區目錄站點與 DeepSeek / 幻方無官方從屬關係,本插件來自社區維護者 simin-xxm。
結尾¶
dsh-plugin-git-commits 把暫存、提交、同步、歷史與 diff 收進 Web UI 側邊欄,適合在 Harness 工作流裏就地完成 Git 日常操作。更多信息見目錄頁 skillhub.cn/plugins/simin-xxm/dsh-plugin-git-commits 與倉庫 github.com/simin-xxm/dsh-plugin-git-commits。