这个页面列出了你可能遇到的同步故障以及解决方法。 ![[同步笔记#^sync-files-on-demand]] ## 通用 ### 合并冲突 当你在两个或多个设备上对同一文件进行更改时,就会发生冲突。例如,你可能在电脑上更改了文件a。而在同步服务上传这些更改前,你也在手机上更改了文件a。这就产生了冲突。 一般来说,如果你的设备不经常连接远程仓库,那么连接远程仓库时产生冲突的可能性就会更大。因为两次同步之间的时间过长,更改更多。 目前,当同步服务发现远程仓库内容与本地版本存在冲突时,会使用谷歌的[diff-match-patch](https://github.com/google/diff-match-patch)算法进行合并。 对于设置文件的冲突,同步服务采用了不同的处理机制——直接合并 JSON 文件,并优先取用本地设置文件的键值。 > [!help] 要查找冲突的发生时间,你可以在**设置 → 同步 → 同步日志 → 查看**中搜索"Merging conflicted"(合并冲突)。 ### 同步服务清空了我在设备上刚创建的笔记 通常情况下,同步服务会优先尝试[[#合并冲突]]。不幸的是,合并冲突并不是在所有场景下都能生效,有时还会产生问题,特别是那些使用了启动时 *自动生成* 或 *修改笔记* 功能的场景下。常见的例子是使用[[日记]]插件。 如果远程仓库中已存在一篇笔记a,那么在笔记a被同步至本地前的1秒钟左右、在本地再次创建笔记a,同步服务则会优先选择将远程仓库中的笔记a同步至本地,而非将二者合并。这看起来就像同步服务清空了你刚创建的笔记a。在这种情况下,你可以使用[[文件恢复]]功能来恢复本地仓库中笔记a的内容。当然,我们更建议你在同步完成前不进行笔记创建和修改工作。 ### 同步服务没有同步我插件和设置的更新 和前面说的一样,[[同步常见问题#同步可以直接覆盖设置并生效吗?|Obsidian 的设置并不能立即应用]]。你必须重启应用以让更改生效。 > [!example]- 案例:更换主题 > - 你的主设备,比如电脑,从自定义主题切换回了默认主题。 > - 随后,你查看同步日志,发现同步服务确实将主题设置文件`appearance.json`推送到了远程仓库。然而,你当前正开着 Obsidian 的手机并没有切换到回默认主题。 > - 随后你检查移动端 Obsidian 的同步日志,发现手机确实接收到了新的主题设置文件`appearance.json`。 > - 接着,你在手机上重新启动 Obsidian。 > - 随后你就发现手机和电脑一样也切回了默认主题。 ### 同步后我的文件消失了 如果你的仓库放在 Windows 或 MacOS 上的 `Documents`文件夹下,或iOS上的 iCloud 中,那么这是[[同步常见问题#我是否能同时使用官方同步和第三方同步?|同步冲突]]导致的。因为 Obsidian 会镜像反映文件系统的变化,所以同步的冲突会导致远程仓库中的文件删除。 > [!hint] 在Windows上,Windows Defender 可能会把带有代码的笔记视为威胁、从而将其隔离。这是导致笔记“消失”的原因之一。 如果你把仓库放在了第三方同步服务的同步目录下,你可以参考以下步骤将其移动到别的位置,从而使得第三方同步服务仅作为[[备份笔记|备份]]。 #### 桌面端 ##### 使用仓库切换器移动仓库 1. 点击切换仓库列表中的 **管理仓库** ( ![[obsidian-icon-vault-switcher.svg#icon]] ) 按钮。 2. 点击仓库旁边的 **更多选项** ( ![[lucide-more-horizontal.svg#icon]] ) 。 3. 为仓库选择一个新的存放路径。 ##### 手动移动仓库 1. 备份仓库到一个安全的路径。 2. 关闭 Obsidian。 3. 将仓库文件夹移动到另一个位置,记住新的位置不要是其他服务的同步目录。 4. 检查备份。 5. 重新启动 Obsidian。 6. 点击切换仓库列表中的 **管理仓库** ( ![[obsidian-icon-vault-switcher.svg#icon]] ) 按钮。 7. 点击**打开本地仓库**。 8. 找到仓库的新路径,打开它。 9. 检查仓库和原来一样。然后你可能需要关闭安全模式以重新启动之前的插件和主题:**设置 → 第三方插件 → 关闭安全模式**。 10. 重新连接[[本地仓库与远程仓库|远程仓库]] #### 移动端 在安卓上,大部分 Obsidian 版本会将仓库保存到系统的 `Document\obsidian` 文件夹中。如果仓库文件夹不在这个文件夹下,你可以参考[[#使用仓库切换器移动仓库]]来移动仓库文件夹。 ##### iOS 1. [[备份笔记|备份]] 仓库。 2. 新建仓库,并不要让仓库 **保存到 iCloud Drive** 3. 关闭所有设备上的 Obsidian app 以停止同步。 4. 打开 iOS 的文件系统。 5. 长按 `iCloud/Obsidian` 文件夹下的仓库文件夹,点击**移动**。 6. 将其移动路径选择到**我的设备**,并确认移动后的仓库可见。 7. 点击**复制**。 8. 回到 `iCloud/Obsidian` 文件夹下然后删除旧仓库文件夹。 随后再次打开 Obsidian,你的仓库不会会云标志,代表其不再保存于 iCloud 中。 ## 账号 ### "仓库过大" 是什么意思? 你的账户超过了[[订阅计划与容量限制]]。具体请查看[[订阅计划与容量限制]]相关说明。 由于附件和版本历史也会影响你远程仓库的总大小,因此即使你远程仓库的笔记总大小低于限制,但其实际仍然超出了限制。 要识别并清理仓库中的大文件: 1. 打开**设置 → 同步**。 2. 点击**查看大文件**,并考虑清除其中一些大文件。 ## "仓库不存在" 是什么意思? `{"res":"err","msg":"Vault not found."}` 这个错误常见于以下情况: 1. 远程仓库已经被其他设备删除了。 2. 同步订阅超过30天未续订,导致远程仓库被删除。 3. 订阅被取消或退款,导致远程仓库被删除。 在以上情况下,请及时[[启动同步服务#断开远程仓库的连接|断开本地仓库与远程仓库的连接]],并及时备份本地仓库。随后,[[启动同步服务#新建远程仓库|基于本地仓库重新创建一个远程仓库]]。 ## 安卓端 ### 同步删除了我的附件 这个问题可能是因为使用了 Google Photos 管理附件,特别是照片。要避免这个问题,请在你的安卓设备下添加 `.nomedia` 文件[到仓库中](https://www.lifewire.com/nomedia-file-4172882) > [!tip] 我们的社区插件 [Android Nomedia](https://obsidian.md/plugins?id=android-nomedia) 简化了这个过程。在安卓设备上安装这个插件即可自动完成上述过程,并且`.nomedia` 文件还会被同步到别的设备上,后续就再也不用烦恼了。