免费同步方案
众所周知,目前 Obsidian 的官方同步功能是付费的,对于经常跨设备使用的用户和有备份需求而言,同步功能又是必需的,笔者这里介绍下自己跨多个平台同步 Obsidian 的方案,以做参考。
iCloud
对于苹果用户来说,最简单最方便的方法是将 vault 保存在 iCloud 中,让 iCloud 同步。不过笔者使用下来发现这种方案存在如下问题:
- Linux 机器同步不方便。
- 每次 iPhone 打开 Obsidian 都需要同步 iCloud,当 vault 较大时,时间会很久。
- Home 等页面出现多文件的情况(如 Home Dashboard 2),原因是 iCloud 不会自己同步。
- iCloud 没有版本管理功能,如果不小心误删文件会比较头大,当然这个问题可以通过设置 Obsidian 删除文件时移动到回收站来解决。
坚果云
另外一种简单的方案是使用坚果云。坚果云会自动同步文件,支持多平台,能完美避免 iCloud 的问题。但需要注意的是,坚果云免费版没有版本管理的功能,笔者某次在同步文件时设置错了目录,导致文件全被同步清除了。对于付费版用户来说不存在这个问题。
若使用自动同步的云服务,务必确认该服务是否有版本管理的功能。
Git
免费的版本管理还是靠 git,配合 obsidian-git 插件将本地仓库同步到 github/gitee 等远程仓库后,Windows、Linux 等操作系统的机器也能使用了,这个配置较简单,故此不再赘述。
如果想要在手机端同步 Obsidian 文件的话,可借助 Working Copy 来同步远程仓库的文件。笔者以同步 github 上的远程仓库 https://github.com/qileq/my-docs 为例,说下在 iOS 上的配置过程。
对于同步需求并不频繁的用户而言,可以使用坚果云免费版来实现自动同步,定期推送到 github 做版本管理。
Obsidian 创建仓库
Obsidian 上点击 Create new vault,由于远程仓库名为 my-docs,因此这里笔者将 "vault name" 也设置为 "my-docs":
注意这里不要开启 "Store in iCloud",点击 Create 后,会在手机 Files 中创建一个名为 "Obsidian" 的文件夹。
Working Copy 配置 github 权限
点击左上角的设置按钮,点击 "SSH Keys":
在 SSH keys 页面中点击 "WorkingCopy@xxxx" 那一栏,进入 RSA Key 设置中,然后点击 "Connect With GitHub",给予 Working Copy 管理 Github 仓库的权限:
Working Copy 同步远程仓库
- 打开 Working Copy,新下载的用户有 10 天免费的高级功能使用权限,点击试用。
- 点击 +,选择 "Link external directory":
- 选择 "On My iPhone"/"Obsidian"/"my-docs",点击 "Done":
此时界面如下: - 点击 "Repository",配置远程仓库信息:
这里有两个地方需要配置:- Configuration: 使用[[#Working Copy 配置 github 权限]]中添加的用户。
- 点击 Add Remote,将远程仓库地址 git@github.com:qileq/my-docs.git 复制到 URL 中,点击 Test,确认配置是否正确。如果正确,则在顶部会出现 "Configuration passed test." 的提示,如下图:
如果出现 "SSH Connection rejected." 的提示,一般是 SSH Key 设置错误,参考 Working Copy 配置 github 权限进行设置。然后点击 "Save" 保存。
- 点击右下角的"指纹"按钮,进入操作页面:
- 由于 Obsidian 在创建 vault 时生成了 .obsidian,所以要先把这些生成的文件删除或提交到本地仓库。
- 如果是删除的话,可以点击 REVERT 按钮,也可以回到仓库页面,按在 .obisidian 栏,左划,点击 "Delete":
- 也可以直接点击 Commit 按钮,先将 .obsidian 文件夹提交到本地仓库。
- 如果是删除的话,可以点击 REVERT 按钮,也可以回到仓库页面,按在 .obisidian 栏,左划,点击 "Delete":
- 点击 Pull,拉取远程仓库数据,结束后顶部出现 "Pull received XXX Mbytes" 的提示:
- 回到 "my-docs" 页面,若是上一步选择删除文件,则这里会直接显示远程仓库文件:
若选择的是 commit,则这里显示的仍是本地文件,而不是远程仓库文件(如果未 commit 过也不会出现远程仓库文件),此时点击 "main"(老仓库为 "master")栏右侧的切换分支按钮,选择远程分支,点击 checkout,创建本地 main(或 master)分支即可。
Obsidian 使用仓库
回到 Obsidian,打开 my-docs vault 就能看到所有文件啦!
这种依赖于 git 的同步方案经常会出现 data.json 等文件冲突的问题,解决办法是把这些经常冲突的数据文件加到 .gitignore 中。
对于有购买云服务器的朋友,还可以试试 remotely-save 同步。笔者目前使用 obsidian + git 的方式使用下来体验还行。