# Obsidian 同步，为什么不要同时使用 iCloud 和 Git？

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/20587

近期有一位读者提问：

> 我参考文章使用 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 是更优选择，因为它可以跟踪每次

---

[前往标准阅读页](https://utgd.net/article/20587?audience=web)
