dsh-git-plus
在侧边栏提供完整的Git版本控制管理面板 适合需要在DSH内直接进行分支切换、暂存、提交、推送及冲突解决等Git操作的用户。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bitxeno/dsh-git-plus說明文件
閱讀完整 README ↗Usage
The panel lives in the conversation view as the Git Plus tab.
Sidebar — top nav switches between Local Changes and All Commits; beneath it a sync toolbar (fetch / pull / push), then the collapsible Branches / Tags / Stashes / Remotes groups:
- Fetch — pick a remote or fetch all (
--prunealways on). - Pull — pick the remote and remote branch (defaults to the upstream), see the target branch, opt into
--rebaseand--autostash. - Push — pick the local branch and the target
remote/branch(creating a branch on the remote is one select away); tracking reference (--set-upstream) shows only for new remote branches, with optional--tagsand--force. - Branch rows show ahead/behind counts; a greyed icon marks branches with no remote counterpart. Click a branch/tag to filter All Commits, double-click to check it out, right-click for the row menu (checkout, merge, create branch/tag here, copy, delete).
- Both Branches and Remotes fold
/-separated names into folders, with the default branch first (the local default branch;origin/mainunder Remotes). In Remotes the default branch stays inside its own remote folder and leads it — it is never lifted out oforigin. - Stash rows apply / pop / drop (drop arms with a second click).
Local Changes — stage / unstage / discard per file or in bulk, commit with amend, per-file diffs.
All Commits — commit history with a graph rail, search by message or hash prefix, author and time filters, and a commit detail pane: commit body, change stats, per-file diffs (unified or split, image compare, deferred rendering for large diffs), file tree and raw content. Branch / tag / checkout can be launched from any commit row.
Conflicts — a merge or pull that conflicts returns a banner listing the conflicted files with their resolved state; continue (git add -A + commit) or abort from there.
The input bar shows a zsh-style (branch) marker (toggle in Settings; off state moves a status dot beside the Git tab).
Configuration
Host options go into the selected profile's cordis.patch.yml:
- id: git-plus
config:
timeoutMs: 8000
networkTimeoutMs: 300000
maxBytes: 4194304
maxChanges: 1000
refreshIntervalMs: 30000
defaultDiffView: unified
timeoutMsbounds each local git command (default 8000 ms).networkTimeoutMsbounds network commands — fetch / pull / push (default 300000 ms).maxBytescaps per-command stdout (default 4 MiB).maxChangescaps the change list (default 1000).refreshIntervalMsis the snapshot poll interval (default 30000 ms).
A Host config change needs a dsh web restart.