article_image

近期有一位读者提问:

我参考文章使用 Working Copy 进行 Obsidian 同步,其中 Link Repo 这一步在 iPhone 上是秒完成的,但是在 iPad 上一直卡转圈无法完成,请问是什么原因?

这里提到的参考文章是这两篇——

  • Obsidian 的 PC 端同步方案,无代码搞定 Git 同步 - #UNTAG
  • Obsidian 的手机端同步方案,iOS + Git + Shortcuts 实现自动同步 - #UNTAG

这个问题其实还挺常见的,这是因为 Git 仓库在 Working Copy 中不应该 Link Repo 到 iCloud 文件夹内,而应该存储到本机的文件夹(在文中有提到)。

我想有必要写一篇文章来讲讲 iCloud 和 Git 方案分别是怎么实现的,以及为什么不要同时使用。

当我们使用 iCloud 和 Git 时,分别在做什么?

直接用 iCloud 同步 Obsidian 时,Macbook 上编辑并保存文件后,iCloud 会将其实时同步到云端。当拿起 iPhone 时,文件又会实时同步到手机端,反之亦然。

其他云盘类的工具也大多遵循这个逻辑,比如 Dropbox、OneDrive。

用 Git 同步 Obsidian 时,Macbook 上编辑并保存文件后,需要通过 git push 把“这一批文件”一次性发送到 Github。当拿起 iPhone 时,需要通过 git pull 把“这一批文件”拉取到本地。

如果完全按照这篇文章的设置,Obsidian Git 和 Working Copy 都会帮我们自动完成 pull 和 push 操作,无需手动执行。

通俗地讲,总结起来就两点:

  • iCloud 是实时同步的,你写完一个笔记,iCloud 就自动同步了。
  • Git 操作,是电脑 push,手机 pull,才会同步过来。

一般来说,只要是单独使用这两种方案,都可以正常实现“同步”的需求。

但我也提到过“网盘实时同步的麻烦事”,网盘并不能很好地识别 Obsidian 关联修改文件的操作,可能会创建出一堆历史版本,影响正常使用。所以我更推荐仅使用 Git 方案。

为什么不要同时使用 iCloud 和 Git?

而在文章开头提到的读者疑问中。他既使用了 Git,又同步到了 iCloud 文件夹中。则相当于同时使用了 iCloud 和 Git 两种方案。

模拟一下这个场景:

  • 你在 Mac 上编辑完文件,iCloud 立即同步,文件已经写到 iPhone 了。
  • 此时你手动运行 Git push,数据写入了 Github。
  • 当你打开手机 Working Copy,尝试自动为你执行 Git pull 。
  • 此时 Working Copy 发现 iCloud 文件夹里已经有这个文件了。 如果两个文件一模一样,可能不会报错。 如果两个文件的修改时间出现不同,Git 和 iCloud 不一样了,就会报错,或者需要你手动解决冲突。在解决冲突前,不会执行 git pull 操作。

因此,总结出来的最佳实践如下:

  • 选择一种同步方案使用,避免同时使用 iCloud 和 Git。这样可以减少同步冲突的风险,确保数据的一致性和完整性。
  • 对于需要版本控制的场景,Git 是更优选择,因为它可以跟踪每次

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

#UNTAG Developer