dsh-plugin-git-commits:在 DSH Web UI 裏完成 Git 暫存、提交與歷史對比

前言

在 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(含未跟蹤)分組,展示 A M D R U 標記及 +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 爲其絕對路徑。

典型用法

  1. 重啓 dsh web 後打開 Web UI,從側邊欄進入 Git commits。
  2. 在 Changes 中查看未暫存與已暫存文件,按需 stage 單文件或整組,在 diff 中核對改動。
  3. 填寫提交說明,使用 ⌘/Ctrl + Enter 或提交按鈕完成 commit(僅 staged 內容)。
  4. 使用 Sync 查看與遠端差距後,按需 Pull 或 Push;首次推送會自動設置 upstream。
  5. 切換到 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。

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

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

小夜