← 返回列表
未验证
🔄 dsh-git-sync — Git 配置同步中心
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/2 · 已提供中文文档
DeepSeek Harness 的 Git 配置同步中心——实时配置同步到 GitHub,具备冲突自愈和多 AI 工具适配器(OpenCode/Cline/Roo Code/Kilo Code/Continue/goose/Agent Zero)
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Yiyang0659/dsh-git-sync该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:已验证本站已于 0 天前真实安装成功
- 是什么
- dsh 原生插件 · market
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 23 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/26
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成🔄 dsh-git-sync — Git 配置同步中心
DeepSeek Harness(DSH)的 Git 实时配置同步插件
配置实时同步到 GitHub · 冲突自动修复 · 一个仓库带走你所有 AI 工具的配置
Version
DSH
Node
Platform
License
English · 中文
dsh-git-sync 架构图
dsh-git-sync 把你的 ~/.dsh 目录变成一个由 Git 驱动的配置中心:所有设置、技能(skills)、插件都会被提交并推送到你自己的私有 GitHub 仓库——可以随改动实时同步、按每日计划同步,或一键手动同步。换到第二台电脑时,一切自动回来。
它还能把其他 AI 编码工具的用户配置(OpenCode、Cline、Roo Code、Kilo Code、Continue、goose、Agent Zero)桥接进同一个仓库,让所有 AI 工具的配置一起跟着你走。
✅ v2 修复了 v1 的头号顽疾:pull --rebase 卡死(unmerged files)导致自动同步永远失败。v2 会自动检测并修复——详见故障排查。
✨ 功能总览
| | 功能 | 说明 |
|---|---|---|
| ⚡ | 实时同步 | 监听配置仓库,变更静默 30 秒后自动 commit + push。服务端调度,浏览器关了照样生效。 |
| 🌙 | 每日计划同步 | 错过了时刻?电脑睡了一夜?开机自动补跑。失败的运行会重试,而不是被标记"今日已完成"(v2 修复)。 |
| 🛠 | 冲突自愈 | 拉取前自动恢复卡死的 rebase/merge 与残留冲突标记——彻底告别 "Pulling is not possible because you have unmerged files" 死循环。 |
| 🧩 | 多工具适配器 | 将 OpenCode / Cline / Roo Code / Kilo Code / Continue / goose / Agent Zero 的配置镜像到仓库 bridges/ 目录,随同一个仓库同步。 |
| 🪞 | 智能回写 | 拉取后只回写真正变化的桥接文件——绝不会覆盖工具目录里更新的本地修改。 |
| 🔁 | 网络重试 | fetch/push/pull 遇到瞬时 SSL/DNS/连接错误自动指数退避重试,不再一失败就整个任务报废。 |
| 🖥 | 四态徽标 | 会话头部的彩色徽标:已同步 / 待上传 / 待拉取 / 分叉 / 冲突,点开即见远程、分支、脏文件、适配器、最近日志。 |
| 📑 | 侧边栏页面 | 若安装了 dsh-better-sidebar,会在侧边栏注册完整的「Git 同步中心」页面。 |
| 🔐 | 密钥安全 | .credentials.yaml、.env、state.json 由插件自动写入 .gitignore 保护(每次 push 前自愈补全)。 |
| 🤝 | 双机协作 | config.json(节奏与适配器)入库共享;state.json(运行记录)各机自持。 |
🧩 支持的 AI 工具
| 工具 | 同步内容 | 默认位置(macOS / Linux) |
|---|---|---|
| DeepSeek Harness | ~/.dsh 仓库本身(原生) | ~/.dsh |
| OpenCode | opencode.json、agent/、command/、theme/、plugin/ | ~/.config/opencode |
| goose | config.yaml、recipes/ | ~/.config/goose |
| Continue | config.yaml、config.json、rules/、prompts/、blocks/ | ~/.continue |
| Cline | VS Code globalStorage/.../settings/.json | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings |
| Roo Code | VS Code globalStorage/.../settings/.json | .../globalStorage/rooveterinaryinc.roo-cline/settings |
| Kilo Code | VS Code globalStorage/.../settings/*.json | .../globalStorage/kilocode.kilo-code/settings |
| Agent Zero | settings.json、models.yaml、prompts/ | ~/agent-zero(或 $AGENT_ZERO_HOME) |
每个适配器都可在面板(设置与适配器 页签)中单独开关、自定义路径;覆盖配置保存在 git-sync/config.json,随仓库同步。
📦 安装
方式 A —— 在 profile 里加一行(推荐)
编辑 ~/.dsh/profiles/web/package.json:
{
"dependencies": {
"dsh-git-sync": "github:Yiyang0659/dsh-git-sync" // ← 加这一行
}
}
然后在 ~/.dsh/profiles/web 里执行:
pnpm install
方式 B —— 克隆到插件目录
cd ~/.dsh/profiles/web/plugins
git clone https://github.com/Yiyang0659/dsh-git-sync.git
然后在 ~/.dsh/profiles/web/package.json 中加入:
"dsh-git-sync": "file:./plugins/dsh-git-sync"
cd ~/.dsh/profiles/web && pnpm install
方式 C —— 注册 bundle
确认 ~/.dsh/profiles/web/package.json 的 "dsh": { "profile": { "bundles": [...] } } 里有 "dsh-git-sync",然后重启 DSH Web。
任何安装/更新之后,都需要重启 DSH Web(dsh web)来加载新插件代码。
🚀 快速上手
1. 在 GitHub 建一个私有仓库(例如 deepseek-harness-sync),然后:
cd ~/.dsh
git init && git branch -M main
git remote add origin https://github.com//deepseek-harness-sync.git
2. 认证一次(macOS 钥匙串 / Windows 凭据管理器):
git config credential.helper osxkeychain # Windows 用 manager / manager-core
3. 重启 DSH Web,在会话头部找到「Git: …」徽标
打开徽标面板:
1. ⬆️ 本地 ➔ Git —— 首次推送你的全部配置。
2. ⚙️ 设置与适配器 —— 打开 ⚡ 实时同步、🌙 每日计划,并启用你用到的 AI 工具适配器。
3. 在第二台电脑上:把同一个仓库克隆到 ~/.dsh,用同样的方式安装插件即可。
⚙️ 配置项
全部配置保存在 ~/.dsh/git-sync/config.json(随仓库在多机间共享):
| 键 | 默认值 | 说明 |
|---|---|---|
| localScanSeconds | 10 | 徽标本地轮询间隔(5–300 秒) |
| remoteFetchMinutes | 5 | 服务端 fetch 远程的频率(1–60 分钟) |
| realtime.enabled | true | 监听仓库变更并自动同步 |
| realtime.debounceSeconds | 30 | 变更静默期(10–600 秒) |
| autoSyncEnabled | false | 启用每日计划同步 |
| dailyTime | "23:00" | 每日同步时刻(本地时间) |
| pullFirst | true | 推送前先拉取(rebase) |
| catchUpOnStartup | true | 距上次成功运行超过 20 小时时开机补跑 |
| adapters..enabled | false | 启用某个工具的桥接 |
| adapters..path | "" | 自定义工具路径(支持 ~) |
机器本地的 ~/.dsh/git-sync/state.json 保存上次运行时间与最近同步日志(永不入库)。
桥接原理
电脑 A 电脑 B
┌──────────────────────┐ git push/pull ┌──────────────────────┐
│ ~/.dsh (git 仓库) │ ◄───────────────► │ GitHub 私有仓库 │
│ ├── settings.yaml │ └──────────▲───────────┘
│ ├── skills/ │ │
│ ├── bridges/ │ copy-out(推送前镜像) │
│ │ └── opencode/ ◄────────── ~/.config/opencode │
│ │ └── continue/ ◄──────┐ │
│ └── git-sync/ │ copy-in(拉取后只回写变化文件)│
│ ├── config.json ───┼──► 入库共享 │
│ └── state.json ────┼──► 机器本地 │
└──────────────────────┘ │
└── ~/.continue
❓ 常见问题
GitHub token 安全吗?
插件从不接触 token——它只调用你本地的 git,凭据保存在操作系统钥匙串里。请使用私有仓库;.credentials.yaml 会被自动忽略。
浏览器关了还会同步吗?
会。每日调度器和实时监听都运行在 DSH 服务端进程里,不依赖网页。
两台电脑改了同一个文件怎么办?
pullFirst 会把本地提交 rebase 到远程之上。如果仍有真实冲突,拉取会被干净地中止,徽标变红并提供一键修复——你的工作区内容不会被破坏。
一次 push 会提交哪些文件?
只有插件声明的路径(TRACKED_PATHS):settings.yaml、skills/、profiles/web/plugins/、bridges/ 等。不存在的路径会被跳过(v1 的 pathspec did not match 失败不复现)。
🩺 故障排查
徽标显示「Git: 冲突」/ 每次运行都报 “unmerged files”
这就是 v1 的头号杀手——被中断的 pull --rebase 在索引里留下冲突标记,之后每次 pull 都拒绝运行。v2 自动修复:点面板里的 🛠 一键修复,或 POST /plugins/git-sync/repair。修复会中止卡死的 rebase/merge 并清理孤立的冲突标记(git reset——文件内容原样保留)。
SSL_ERROR_SYSCALL / Could not resolve host
瞬时网络错误会自动重试(2 次退避)。如果网络需要代理,请给 git 配置:git config --global http.proxy http://127.0.0.1:7897。
徽标一直「待上传」,push 却说没有东西可传
v1 缺陷:未跟踪的机器本地文件(如 git-sync/state.json)让状态永远显得"脏"。v2 只统计可同步路径的变更,并在 push 前自动补全必需的 .gitignore 规则。
另一台电脑更新了插件依赖
当 pull 改动了 profiles/web/package.json 或 lockfile 时,插件会自动在 profile 目录里运行 pnpm install(失败则回退 npm install)——macOS/Linux 与 Windows 均支持。
🛠 开发
npm run check # 语法检查 + 全部测试
npm test # node:test —— 29 个用例,含双机 git 集成测试
插件免构建:dist/core.js(核心逻辑)、dist/index.js(服务端)、dist/client.js(Web UI)均为 DSH 直接加载的纯 ESM。
📄 许可证
MIT © Yiyang0659