# Obsidian 的手机端同步方案，iOS \+ Git \+ Shortcuts 实现自动同步

> 本文公开全文。

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

Obsidian 已经成为许多人的首选笔记应用，但如何在多个设备上同步你的 Obsidian 仓库，仍然是一个问题。

先前写了一篇《Obsidian 的 PC 端同步方案，无代码搞定 Git 同步》，介绍了如何给 Obsidian 添加 Git 同步功能。如果你还没有看过这篇文章，建议先去看一下这篇文章，在 PC 端完成基础配置。

## 准备工作

在开始本文之前，你需要做一些准备工作：

- 一个已备份到 GitHub 仓库的现有 Obsidian 仓库。（参考此文）

- 一个安装了 Obsidian、Working Copy 和 Shortcuts 的 iPhone 或 iPad。

🔗 Obsidian \- App Store 下载

🔗 Shortcuts \- App Store 下载

需要注意的是，这篇教程中的方法并不是完全免费的，主要借助了 Working Copy 的功能，这是一个功能强大的 Git 客户端。目前它需要一次性付费 24\.99 美元，才能解锁 Push 推送这样的关键性功能，否则只能进行 Pull 单向拉取操作。

🔗 Working Copy \- App Store 下载

选择它也是有理由的，它支持了我们所需要的 clone、push、pull、fetch 等大多数常见操作，并且支持 Shortcuts 实现自动化、支持将 Git 仓库映射到 Obsidian 目录下。这为我们实现全流程自动化提供了方便。

## 关键操作步骤

### 连接本地 Obsidian vault 到 GitHub 仓库

- 创建新的 Obsidian vault：首先，在你的 iPhone/iPad 上打开 Obsidian 应用。选择“Create new vault”，为你的 vault 起一个名字，然后点击“创建”。（不要勾选 Store in iCloud）

- 使用 Working Copy 连接到 GitHub：打开 Working Copy 应用，点击侧边栏的“\+”图标，选择“Clone repository”。然后需要登录你的 GitHub 账号，然后选择你的 Obsidian vault 仓库进行克隆。

注 1：如果你用的不是 Github，这一步需要手动配置 Git URL 来添加仓库。

注 2：如果你的仓库较大，首次 Clone 可能需要耗费较长的时间。

- 链接仓库到文件夹：在 Working Copy 中，点开仓库，点击上方的 Statue and Configuration，点击仓库名称，选择 Link Repository to Folder。在“我的 iPhone”中，打开“Obsidian”目录，然后选择你刚刚创建的新 vault 文件夹。

注：在 iPad上，这一步在右上角的分享按钮，点击分享按钮后可以看到 Link Repository to Folder 按钮。

- 验证文件：返回 Obsidian 应用，你会发现 Github 中的 Vault 现在正常出现在了 Obsidian App 中。

这里可能产生一个小问题，由于“新建 Obsidian vault”这一步已经创建了一个默认的 \.obsidian 目录。在 Clone 你原本的仓库时，会出现 app\.json 和 app\.json\-2 这样两组文件，这些文件包含 Obsidian 的界面配置等信息，如果同步了错误的数据，你会发现电脑端原本的配置会丢失（实际上可能被存储到了 app\.json\-2 中）。

由于在 Obsidian 中是不显示 \.obsidian 目录的。为了解决这个小问题，你需要在 Working Copy 中手动合并这两个文件再提交。所以就有了第 5 步。

- 解决文件冲突：在 Working Copy 中打开 \.obsidian 文件夹，检查是否存在重复的文件，例如 app\.json 和 app\.json\-2。通过编辑器手动把它们合并到一个文件，删除另一个，然后再进行 Push 操作即可。

到这一步为止，你已经完成了仓库的同步，只不过上传和下载都是手动的。需要在 Working Copy App 中点击 Pull 和 Push 来完成拉取和推送操作。

## 实现自动化上传和下载

接下来我们要利用 Shortcuts 实现自动拉取和推送功能。

在理想情况下，我们需要实现两个自动化动作：

- 在点开 Obsidian 时，拉取最新的 Github 仓库到本地。

- 在关闭 Obsidian 时，推送本地数据到 Github 仓库。

上图展示了最终成品 Shortcuts，以下是详细操作步骤。

### 拉取 GitHub 拉取到本地

操作步骤：

- 创建一个拉取的Shortcuts：打开 Shortcuts 应用，点击“\+”创建一个新的 Shortcuts。为其命名为“拉取 Obsidian”。

- 添加拉取仓库操作：搜索 Working Copy 的“Pull form”操作并添加到你的 Shortcuts 中，并选择你的仓库。

- 自动化拉取更改：在 Shortcuts 应用中，打开“自动化”页面，创建一个新的个人自动化。选择“打开应用”作为触发器，选择“Obsidian”应用，并确保“打开时”已勾选。然后添加一个“运行Shortcuts”的操作，并选择你刚刚创建的“拉取 Obsidian”的Shortcuts。

### 推送本地数据到 GitHub

注意推送的 Shortcuts 中，需要添加 Commit 和 Push 两个操作。内容可以自定义，比如和 Obsidian Git 的默认格式保持一致。

操作步骤：

- 创建一个推送更改的 Shortcuts：在 Shortcuts 应用中，再次点击“\+”创建一个新的Shortcuts。为其命名为“备份 Obsidian”。

- 添加提交和推送仓库操作：搜索 Working Copy 的“Commit”和“Push”操作并按顺序添加到你的 Shortcuts 中。

- 自动化推送更改：再次打开“自动化”页面，创建自动化。选择“关闭 Obsidian”作为触发器。然后添加一个“运行 Shortcuts”的操作，并选择你刚刚创建的“推送 Obsidian”的 Shortcuts。

完成以上步骤后，每次你在 iPhone 或 iPad 上打开或关闭 Obsidian 应用时，都会自动从 GitHub 拉取或推送更改，这样你的笔记就能够始终保持同步。

## 免费替代方案

这篇文章花了很长的时间研究，我为了实现一个尽量免费的方案，也尝试了很多种不同的同步方案，比如通过 WebDAV、SMB 等协议进行同步；通过 iCloud \+ Git 定时同步；通过 iCloud Drive \+ Mac 端定时任务同步等等。但都因为某些原因放弃了：要么会搞乱电脑端的设置，要么需要等待同步，要么难以手动触发。同步的效果和体验都不是很好。

但还是有一些值得一提的免费替代方案的。

### 替代方案之 Obsidian Git

最佳的免费替代方案是 Obsidian Git 插件，它在 2022 年 9 月的更新中提供了 Obsidian 手机版本，对小型仓库和 Android 用户而言是一个很好的替代方案。首次同步会比较耗时，后续的 Pull 和 Push 操作都非常快。

我自己尝试之后发现，我的 Vault 对于这个插件似乎有些过大，我的设备是 iPhone 12 Pro Max，首次同步时就会出现应用闪退导致无法同步的情况。官方也表示这是由于设备和内存限制导致的，Vault 的大小会有所限制（关于移动端性能的说明）。而 Working Copy 则没有出现这个问题。

作为参考，我目前 Obsidian Vault 的文件夹大小在 1\.93 GB、3588 个文件。在 Working Copy 中显示仓库占用 843\.3 MB。

### 额外提醒

如果你在 PC 端已经安装了 Obsidian Git 插件，那么每次点开 iOS 版 Obsidian 可能会弹出一个来自插件的无法同步提醒。你可以在 iOS 的插件设置中，打开“Disable on this device”选项来禁用它。

### 关于 Android 同步方案

关于 Android 通过 Git 同步的方案，我也还在学习中。目前我找到的是 Obsidian 社区中的这篇《通过 Termux 终端实现 Git 同步》教程，结合 Tasker 可以实现定时同步。

Android 也有一些非 Git 的同步方案，较常见的方案是使用 Dropsync 和 FolderSync 这样的同步工具，借助 OneDrive、Dropbox 来同步数据，这是可行的。

但走云服务与 Git 同步的方法有较大差异，遇到的问题也不尽相同。通常会遇到启用了“按需同步”导致的文件重复和文件丢失问题，这些是新的话题，本文暂时不做展开。

## 小结

Working Copy 确实称不上便宜，不过一次性付费总还是比周期性订阅便宜一些。而且最终实现的效果，确实是目前通过 Git 同步到手机端的方案中最方便最流畅的一个。

综合考虑后，我还是认为，Working Copy 是目前我最推荐的 Obsidian 的手机端同步方案。

本文要特别感谢 Megan Sullivan 在她的博客上分享的文章：《Sync your Obsidian Vault on iOS with GitHub, Working Copy, and Apple Shortcuts \| Megan Sullivan》，此文中提供了非常详尽的 iPad 版本图文介绍，对本文帮助很大。如果你对具体操作有不熟悉的地方，推荐你参考这篇文章中的截图逐步操作。

---

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