前言
如果你正在为 Obsidian 多设备同步发愁,网盘容易冲突,官方同步又需要付费。这里介绍一种免费、可靠的方法:用 Git 做版本控制。
搭配 Gitee/GitHub 使用,可以实现笔记的跨设备同步和历史回溯。本文基于 Obsidian 官方帮助文档 的原则,整理出一套多库 Git 同步的最佳实践。
这篇文章就是我折腾下来的最终方案,分享给你。
核心理念:内容进 Git,配置留本地
| 类型 | 内容 | 处理方式 | 原因 |
|---|---|---|---|
| 笔记内容 | 库/*.md 及附件 | ✅ 提交 Git | 核心资产,必须备份 |
| 插件清单 | .obsidian/community-plugins.json | ✅ 提交 Git | 记录插件列表,换设备一键重装 |
| 插件本体 | .obsidian/plugins/ | ❌ Git 忽略 | 体积大,应由 Obsidian 市场按需下载 |
| 工作区状态 | .obsidian/workspace*.json | ❌ Git 忽略 | 含窗口布局,跨设备极易冲突 |
| 临时缓存 | .obsidian/cache/, .trash/ | ❌ Git 忽略 | 无用文件,只会污染仓库 |
.gitignore 配置(分平台版本)
版本一:macOS
**/.obsidian/workspace.json
**/.obsidian/workspace-mobile.json
**/.obsidian/workspaces.json
**/.obsidian/plugins/
**/.obsidian/cache/
!**/.obsidian/plugins/community-plugins.json
# macOS 系统文件
.DS_Store
.AppleDouble
._*
版本二:Windows
**/.obsidian/workspace.json
**/.obsidian/workspace-mobile.json
**/.obsidian/workspaces.json
**/.obsidian/plugins/
**/.obsidian/cache/
!**/.obsidian/plugins/community-plugins.json
# Windows 系统文件
Thumbs.db
Desktop.ini
$RECYCLE.BIN/
版本三:Linux
**/.obsidian/workspace.json
**/.obsidian/workspace-mobile.json
**/.obsidian/workspaces.json
**/.obsidian/plugins/
**/.obsidian/cache/
!**/.obsidian/plugins/community-plugins.json
# Linux 系统文件
.directory
*.swp
*~
跨平台通用版(推荐)
如果你在多个系统间切换,直接用这个:
**/.obsidian/workspace.json
**/.obsidian/workspace-mobile.json
**/.obsidian/workspaces.json
**/.obsidian/plugins/
**/.obsidian/cache/
!**/.obsidian/plugins/community-plugins.json
# macOS
.DS_Store
._*
# Windows
Thumbs.db
Desktop.ini
$RECYCLE.BIN/
# Linux
.directory
*.swp
*~
# 通用临时文件
*.log
.trash/
目录结构示例
我的仓库长这样:
obsidian/ ← Git 仓库根目录
├── .gitignore
├── 工作笔记/
│ ├── 笔记.md
│ └── .obsidian/
│ ├── community-plugins.json ✅ 提交
│ ├── plugins/ ❌ 忽略
│ ├── workspace.json ❌ 忽略
│ └── cache/ ❌ 忽略
├── 个人知识库/
└── 读书笔记/
跨设备恢复流程
换新电脑后,四步恢复:
-
克隆仓库
git clone <你的仓库地址> -
用 Obsidian 打开各库文件夹
-
一键安装缺失插件 Obsidian 检测到
community-plugins.json会自动提示,点一下就行 -
重新配置 API Key(如果你用 Local REST API 的话)
两个常见坑
坑一:workspace.json 冲突
这个文件记录的是窗口布局、打开的文件等,不同电脑的分辨率和屏幕尺寸不同,提交到 Git 只会造成无休止的冲突。
解决:永远忽略它。
坑二:插件本体不要提交
plugins/ 目录下的 main.js、styles.css 等是插件代码,体积大且版本敏感。提交到仓库只会让仓库臃肿,还可能在换设备时因为版本不匹配而出错。
解决:忽略 plugins/ 目录,只提交 community-plugins.json 这个插件列表。换设备后 Obsidian 会自动下载最新版本。
关于多库共享配置
有人可能会问:多个库能不能共用一个 .obsidian 配置?
技术上可以(用软链接),但我不推荐。原因:
- 不同库可能需要不同的插件组合
- 一个库配置坏了,所有库都受影响
- 跨设备恢复时需要额外处理软链接
每个库独立配置虽然多占一点点磁盘空间(几十 MB),但省心得多。
最后
这就是我目前在用的 Obsidian 版本管理方案。核心就是三句话:
- 笔记内容提交 Git
- 插件列表提交 Git
- 工作区状态和插件本体忽略
你也是 Obsidian 用户吗?有没有遇到过同步冲突的坑?欢迎评论区交流。
下一篇预告:Obsidian + AI 篇 —— 如何用 MCP 让 AI 直接操作你的笔记库