前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在通过插件扩展能力。在本地开发环境中,管理 Git 分支、工作树状态以及维护上下文是常见操作。dsh-git-workbench 旨在通过自动化会话环境选择和上下文注入,解决 Git 工作流中的繁琐问题。
这是什么¶
这是一个 DSH Git 开发工作台插件。它捕获仓库状态(分支、ahead/behind、工作树状态、工作树列表、暂存、最近提交),在会话开始时询问在哪个分支或工作树开发,并通过 /git 命令、git_workbench 代理工具和设置页面切换分支/创建和管理工作树。
核心功能¶
- 自动 Git 上下文(只读):每个会话都会注入当前分支、ahead/behind、工作树状态(staged/modified/untracked/conflicts)、工作树列表、暂存列表和最近提交。非 Git 目录保持静默。
- 新会话环境选择(可跳过):使用
autoAsk时,代理会询问一次要开发哪个环境(停留在当前分支、切换分支、创建新分支、打开现有工作树或创建新工作树)。 /git斜杠命令:提供分支切换、合并、分支创建、日志、暂存管理等命令。git_workbench代理工具:代理可调用受防护的操作,与命令行具有相同的防护栏。- 侧边栏 Git 面板(Web):在侧边栏中查看工作台覆盖层,选择工作区,查看状态,并执行操作。
- Composer Git 棱条(Web):输入框行显示分支和干净/脏状态,以及环境选择。
- 合并与清理策略(代理规则):合并到主分支后,询问是否删除分支/工作树。
- 防护栏:阻止在脏树时切换分支;需要
--force才能移除脏的工作树。默认情况下,allowForceSwitch和allowForceWorktreeRemove关闭。
安装与启用¶
使用官方安装命令:
dsh plugin --profile web add dsh-git-workbench
典型用法¶
安装后,打开一个 Git 仓库会话,Git 上下文会被注入。可以使用以下命令进行管理:
/git status - 注入当前 git 上下文快照
/git switch <branch> - 切换分支
/git merge <target> - 将当前分支合并到目标
/git branch <name> - 创建分支并切换
/git log [N] - 最近提交
/git stash [push|list|pop|drop] - 暂存管理
/git worktree list/add/remove - 工作树管理
适用场景与注意¶
- 工作树管理:DSH 将每个工作树视为一个独立的工作区/会话。
/git worktree add <branch>会创建工作树并提示打开一个新会话。 - 脏树防护:切换脏树分支被阻止;工具返回
needsDecision(选项:stash first / force / cancel)。强制是allowForceSwitch(默认关闭)。 - 工作树移除:移除工作树不会针对主工作树或当前会话的目录;脏工作树需要
--force。 - 依赖要求:需要
dsh >= 0.1.0-rc.6和Node >= 22.19.0。 - 模块导入:不要从外部主机插件导入
@deepseek-ai/*以避免重复的模块实例破坏工具调度。 - 生态背景:DSH 的设计理念是“一切皆插件”。该插件在社区目录 https://www.skillhub.cn/plugins/kaixinbaba/dsh-git-workbench 注册,与 DeepSeek 或幻方无官方从属关系。
结语¶
该插件通过命令行、代理工具和 Web 界面,为 DSH 用户提供了完整的 Git 开发工作台功能。更多细节和源代码,请访问 GitHub。