bitxeno/dsh-git-plus ↗★ 0

dsh-git-plus

dsh panel plugin: sidebar git management — Local Changes / All Commits, branch/tag/stash management, merge with conflict handling. 适合需要在DSH内直接进行分支切换、暂存、提交、推送及冲突解决等Git操作的用户。

Package
dsh-git-plus
Compatibility
Unverified
Harness peer range
>=0.1.2-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.2.1-0 || >=0.2.1-alpha.1 <0.3.0-0
Cordis peer range
^4.0.1
Version
0.1.52
Last updated
Oct 11, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bitxeno/dsh-git-plus

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 (--prune always on).
  • Pull — pick the remote and remote branch (defaults to the upstream), see the target branch, opt into --rebase and --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 --tags and --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/main under Remotes). In Remotes the default branch stays inside its own remote folder and leads it — it is never lifted out of origin.
  • 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
  • timeoutMs bounds each local git command (default 8000 ms).
  • networkTimeoutMs bounds network commands — fetch / pull / push (default 300000 ms).
  • maxBytes caps per-command stdout (default 4 MiB).
  • maxChanges caps the change list (default 1000).
  • refreshIntervalMs is the snapshot poll interval (default 30000 ms).

A Host config change needs a dsh web restart.