在 iOS 设备上同步
在使用 Git 同步 Obsidian Vault 的前提下,我们可以在 iOS 设备上通过 Working Copy 进行数据同步。
安装软件
您需要在 iOS 设备上安装 Obsidian 和 Working Copy 两个应用。两者都可以通过 App Store 安装,其中 Working Copy 应用在商店里是这样的:
您可以直接使用免费版本的 Working Copy,因为我们需要的 File app sychronization、基础 pull、commit 和 push 功能是免费提供的。当然,作为一个开发者,我真诚希望您能购买一个付费版,对同行给予一定的支持😁。
配置 Working Copy
在进入后续步骤前,我们假设您已经配置好一个远程的 Git 仓库1用于同步。这里为了方便描述,假设您的仓库地址是:
https://example.com/username/repo.git
后续操作需要用到此地址,另外因为 GitHub 的访问权限控制,您可能还需要生成一个 Access Token。我们在后面再探讨这个问题。
这里假设您正在 iOS 设备上配置全新的本地资源库。如果您已经通过其他手段进行了同步,建议将内容更新到远程 Git 仓库后删除其他方式产生的 vault 备份再操作。
现在开始配置。此时,如果一切就绪,您可以查看 Files 应用,在 On My iPhone 项下,应该可以看到一个名为 Obsidian 的空目录。如果找不到这个目录,可以卸载 Obsidian,随后重新安装。
配置同步文件夹
打开 Working Copy,点击顶部的添加“+”按钮。选择 Setup synced directory。
此时在弹出的界面中选择“On My iPhone”>“Obsidian”作为同步的目标目录。
这一步操作将会在 Working Copy 中建立一个对 Obsidian 应用目录的映射,我们通过 Git 同步到本机的内容会经过此映射实时出现在 Obsidian 应用中。
添加远程仓库
刚才我们配置好的映射会被 Working Copy 命名为“Documents”(您可以在 Working Copy 的主界面对其重命名,不过这不影响您的后续操作)。
但是这个映射并不具备与 Git 服务器连接的功能,于是我们需要进一步操作。
点击 Repository 对远程仓库进行配置。可以看到,Remotes 一项目前没有任何内容,表明我们还没有为此仓库指明要同步的远程服务器。
这一步有两个操作:
- 点击标注了“内容修改的作者”的部份,那里是您用于提交更好的信息。建议使用您的在 Git 服务提供商注册帐号时的网名和电子邮箱2。
- 点击“Add remote”按钮,配置您的远程 Git 仓库。
您需要关注第二个操作。首先需要在 URL 处填上此前配置好的 Git 远程仓库地址:
https://example.com/username/repo.git
随后点击 Test 测试连接性。通常,在您没有添加过配置的情况下会弹出一个对话框要求您登录对应的 Git 服务3。
一切顺利的话,此界面顶部会弹出一个“Configuration passed test.”的提示,表示您已经完成了配置。此时点击右上角的 Save 保存以上配置。
至此,回到刚才的界面,您会发现在 Remotes 位置已经有了刚才的配置。
首次拉取仓库
这个步骤非常简单,您在刚才的界面是否注意到了右下角的指纹图案的浮动按钮?这将是我们后续使用最多的按钮了,请记住它的样子。点击这个按钮,在弹出的界面中点击“Pull”(拉取远程更新),Working Copy 会从远程 Git 服务器下载您的内容,并存入映射目录中。下载完成后会出现一个顶部提示,包含了此次更新的内容概述。

这时候一路返回仓库主界面,您会发现所有仓库都已经被同步下来了!
此时,您切换到 Obsidian(需要先退出应用再重新进入)即可看到所有的 vault 都已经列举出来供您使用了。
提交更改
当您在本地某个 vault 进行了编辑,比如添加了一些文件。现在您想要把内容提交到远程 Git 服务4,进而同步到其他设备。那么请按照这样的步骤操作。
首先仍然是切换到 Working Copy 并进入刚才创建好的 Repository(名为“Documents”),可以看到发生内容编辑的 vault 对应的文件夹已经被标记成了绿色,内部也标志了“added”字样5。
还记得刚才强调的指纹图案的图标吗?点击它进入操作界面。
此时界面详细列举了那些文件发生了变化以供你进一步审阅。确认无误后,点击绿色的“Commit”按钮,填写一个关于此次更新的简单描述。随后从下方的文件列表中勾选您想要提交的内容(或是点击“All”选择全部变更)。最后确认“push”开关已打开,并点击“Commit”。
好了,现在到其他设备上拉取更新吧!
-
如果您在中国大陆以外连接 Git 服务,建议您使用 GitHub,否则建议您使用 Gitee 以获得最佳的连接体验。两者都提供免费的私有仓库托管服务,对于我们的使用场景而言完全足够了。 ↩︎
-
您当然可以跳过这个步骤,因为这不是必须的。事实上您可以用一些特别的名字(比如“用 iOS 设备编辑”)作为提交的作者,以实现区分来自不同平台的编辑的效果。 ↩︎
-
GitHub 可能需要使用您的用户名/主邮箱帐号+access token 登录(查看使用 Git 同步 Obsidian vault);如果您使用 Gitee,使用对应的登录名+密码登录即可。Working Copy 会将您的登录信息缓存在本地以供后续使用。 ↩︎
-
某些情况下(比如您分别在 A、B 两台设备上对同一个文件进行了修改,又分别推送到远程 Git 服务。当后一个设备尝试提交(push)时就会出现冲突。此时您需要选择“Merge”操作,有关此操作的更多内容,建议您进行一定的搜索和深入了解。 ↩︎
-
绿色和“added”表示有内容增加;红色和“deleted”表示有内容删除;橙色和“modified”表示既有内容被修改。 ↩︎