免手搓命令,添加克隆并管理部分 git 子模块
24.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xiongjiamu/dsh-gitmodules-dir该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件lib/index.js:24
const markdown = readFileSync(`${skillsDir}${skillName}/SKILL.md`, 'utf8') - 执行外部命令固定命令lib/index.js:52
const child = spawn('python3', [scriptPath, ...args], { cwd, stdio: ['ignore', 'pipe', 'pipe'] }) - 执行外部命令来自配置/变量lib/index.js:208
const probe = spawnSync(binary, ['--version'], { stdio: 'ignore' }) - 读取本地文件lib/index.js:215
if (!existsSync(scriptPath)) {
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-gitmodules-dir
DeepSeek Harness(dsh)的 git-partial-submodule bundle:让 dsh 用户无需手搓底层 git 命令,就能添加、克隆和管理部分 git submodule —— blobless 部分克隆 + sparse checkout。本 bundle 包装了 git-partial-submodule 项目(Apache-2.0): 上游单文件 Python 脚本被 vendored 进本包(bin/git-partial-submodule.py,固定 commit bd8bb4e7),并以工具形式暴露给模型。
| 层 | 来源 | 在 dsh 中的形态 |
| 工具 | Vendored git-partial-submodule 脚本,通过 python3 执行 | 内置工具 git_partial_submodule(add / clone / save-sparse / restore-sparse) |
| 技能 | 本 bundle | 内置技能 git-partial-submodule,出现在模型的 <available_skills> 目录中,按需通过 skill 工具加载 |
为什么用 partial submodule
展开完整文档(README 剩余 1 节)
dsh-gitmodules-dir
DeepSeek Harness(dsh)的 git-partial-submodule bundle:让 dsh 用户无需手搓底层 git 命令,就能添加、克隆和管理部分 git submodule —— blobless 部分克隆 + sparse checkout。本 bundle 包装了 git-partial-submodule 项目(Apache-2.0): 上游单文件 Python 脚本被 vendored 进本包(bin/git-partial-submodule.py,固定 commit bd8bb4e7),并以工具形式暴露给模型。
| 层 | 来源 | 在 dsh 中的形态 |
| 工具 | Vendored git-partial-submodule 脚本,通过 python3 执行 | 内置工具 git_partial_submodule(add / clone / save-sparse / restore-sparse) |
| 技能 | 本 bundle | 内置技能 git-partial-submodule,出现在模型的 <available_skills> 目录中,按需通过 skill 工具加载 |
为什么用 partial submodule
对顶层仓库,git 提供了 "blobless" clone 等部分克隆选项来减小下载大仓库的负担;但对 submodule,
git 只支持 "shallow" 克隆,而 shallow 克隆存在可用性问题。
git-partial-submodule 把 submodule 克隆成 blobless 仓库 —— 功能完整,同时节省带宽与磁盘 —— 并把 sparse-checkout 模式存进 .gitmodules, 随超项目一起纳入版本控制。
安装
在本包所在目录执行:
dsh plugin --profile web add ./dsh-gitmodules-dir
或从远端安装: dsh plugin --profile web add github:you/dsh-gitmodules-dir#<sha>
dsh web
运行 dsh 的机器上需要:git 2.27.0+ 与 python3 3.8+(启动时缺任一都会告警,使用时给出明确报错)。
模型侧获得的能力
启动后模型侧自动获得:
- 工具 git_partial_submodule —— 在会话工作目录(或显式 cwd)里执行一次 git-partial-submodule 操作:
- add —— 以 blobless 部分克隆方式添加新 submodule(支持 -b/--branch、--name、--sparse)。
- clone —— 克隆超项目后初始化部分 submodule,并应用 .gitmodules 里保存的稀疏模式。
- save-sparse —— 把 submodule 当前的稀疏模式持久化到 .gitmodules。
- restore-sparse —— pull 或切换分支后,把 .gitmodules 里保存的稀疏模式重新应用回去。
- 技能 git-partial-submodule —— 教学何时以及如何使用这些操作;底层实际执行的命令详见
references/git-commands.md(通过目录资源提示按需读取)。
工具返回 { exitCode, stdout, stderr };exitCode 非零表示操作失败 —— 模型读取 stderr 并向用户报告。
配置覆盖
patch 按行整体替换 config;用户可以在自己的 profile cordis.patch.yml 或 --patch overlay 里按行 id 覆盖:
完全禁用本 bundle(不注册工具与技能):
- id: gitmodules-dir
disabled: true
同步 vendored 脚本
bin/git-partial-submodule.py 来自上游 git-partial-submodule 仓库,固定到某个 commit,保证"插件版本 ↔ 上游版本"可复现:
npm run sync-script # 同步固定 commit
npm run sync-script -- <ref> # 同步指定 commit / tag / 分支
npm run smoke # 四个操作的端到端冒烟测试
已知限制与待办
随 bundle 携带的上游限制(见上游 README):
- 部分克隆与 sparse checkout 仍是实验性 git 特性,可能有锋利边缘。
- 该工具以非官方支持的方式操作仓库内部结构,可能在未考虑到的边界情况下失败或把仓库弄坏。
- 不支持递归克隆;底层 git clone / git submodule add 的选项并未全部支持;sparse-checkout 模式中的空格处理不正确。
与现代 git 的交互(上游自 2021 年起停更,git 已演进):
- git >= 2.37 默认 "cone" 模式 sparse checkout,此时 git sparse-checkout list 返回空,导致 save-sparse 存下空模式、clone / restore-sparse 无法重新应用稀疏模式 —— 上游脚本只支持 non-cone 模式。解决办法:让超项目的 git 运行在 core.sparseCheckoutCone=false(例如 git config --global core.sparseCheckoutCone false),或用 git -C sparse-checkout set --no-cone ... 显式设置稀疏模式。
- add --sparse 会在新 submodule 里启用稀疏检出,但不会把初始模式集写进 .gitmodules(上游 TODO);需要先跑一次 save-sparse 持久化。
- 当 submodule 仓库通过纯本地路径提供时,git 会忽略 --filter;要生效请使用 file:// URL 或
真实远端(https)。
许可证
- 本 bundle 的插件代码、技能与打包:MulanPSL-2.0。
- Vendored 脚本及其许可证文本来自
git-partial-submodule(Apache-2.0),随包
复制于 bin/git-partial-submodule.py 与 bin/LICENSE.txt。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xiongjiamu/dsh-gitmodules-dir
免手搓命令,添加克隆并管理部分 git 子模块
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9