本页面列出了你在使用 [[Obsidian 官方同步简介|Obsidian Sync]] 时可能遇到的不常见问题及其解决方法。在继续之前,我们建议先查看[[状态图标与消息]]和[[同步常见问题]]页面。
## 常规问题
### 冲突解决方式
当你在两台或多台设备上修改同一个文件,且修改尚未同步时,就会产生冲突。例如,你在电脑上编辑了一篇笔记,在该更改上传之前,你又在手机上修改了同一篇笔记。
离线工作时冲突更容易发生。因为更改更多且同步间隔更长,冲突的可能性也随之增加。
#### Obsidian Sync 如何处理冲突
当 Obsidian Sync 发现冲突时,结果取决于文件类型:
- **Markdown 文件**:Obsidian Sync 使用 Google 的 [diff-match-patch](https://github.com/google/diff-match-patch) 算法合并更改。
- **其他文件类型**:对于所有其他文件(包括白板),Obsidian 采用"最后修改者优先"的方式。最近修改的版本会替换较早的版本。
对于 Obsidian 设置(如插件设置)中的冲突,Obsidian Sync 会合并 JSON 文件。它将本地 JSON 的键覆盖到远程 JSON 之上。
#### 冲突解决方式选项
从 Obsidian 1.9.7 开始,你可以选择如何处理冲突。要配置此设置:
1. 打开**[[设置]]**。
2. 在侧边栏中选择**同步**。
3. 在**[[同步文件和设置#冲突解决方式|冲突解决方式]]**下,选择你偏好的选项:
- **自动合并**(默认):Obsidian Sync 将不同设备上的所有更改合并到一个文件中。这会保留所有编辑,但有时可能会产生重复文本或格式问题。你需要手动修复这些问题。
- **创建冲突文件**:当 Obsidian 发现冲突更改时,它会创建一个单独的冲突文件而不是自动合并。你可以查看两个版本并自行合并。这让你完全掌控最终结果。
> [!warning]+ 在所有设备上配置
> 冲突解决方式设置是针对每台设备的。你必须在每台设备上配置你偏好的选项,以确保所有同步设备上的行为一致。
**冲突文件命名规则**
当你使用"创建冲突文件"选项时,Obsidian 会创建一个新文件,命名规则如下:
```
原始笔记名.sync-conflict-YYYYMMDD-HHMMSS.md
```
例如,如果在名为 `Meeting notes.md` 的笔记中发生冲突,冲突文件可能命名为:
```
Meeting notes.sync-conflict-20241128-143022.md
```
冲突文件包含检测到冲突的设备上的更改。原始文件保留远程版本。你可以比较两个文件并手动合并内容。
> [!info]+ 查看同步日志
> 要查看冲突发生的时间,请打开[[状态图标与消息#同步日志|同步日志]]。筛选"合并冲突"或搜索"Conflict"。
### 同步删除了我刚在两台设备上创建的笔记
Obsidian Sync 通常会尝试通过[[#冲突解决方式|解决冲突]]来合并不同设备上的冲突笔记。但对于在启动时自动创建或修改笔记的用户,可能会出现问题。这包括[[日记]]或使用社区插件 [Templater](https://github.com/SilentVoid13/Templater) 的情况。
如果你在一台设备上本地创建了一篇笔记,并在几分钟内,同步服务下载了该笔记的远程版本,同步服务将保留远程版本而不合并两者。在这种情况下,你可以使用[[文件恢复]]来恢复本地版本。
### 同步服务不同步我的插件和设置更新
Obsidian [[同步常见问题#Obsidian Sync 能否实时重新加载我的设置?|不会实时重新加载所有设置]]。在你更新设置或插件后,你需要在其他设备上重启 Obsidian 才能看到更改。在移动设备上,你可能需要强制退出应用。
> [!example]- 更改主题
> - 在你的主要设备(通常是电脑)上,你将主题从自定义主题改回默认主题。
> - 同步日志确认更新的文件已发送到远程仓库,但你的移动设备仍显示自定义主题。
> - 在移动设备上,检查同步日志以确认已收到更新的 `appearance.json` 文件。
> - 在移动设备上重新加载或重启 Obsidian。
> - 重新加载或重启后,移动设备应显示与电脑相同的主题。
### 我的文件在恢复后总是从同步服务中消失
此问题在 Windows 上最为常见。Windows Defender 可能会隔离包含代码块的文件,导致某些笔记消失。
另一个常见原因是双重同步。当 Obsidian Sync 与其他同步服务同时运行时就会发生这种情况。
![[切换到 Obsidian Sync#将仓库移出第三方同步服务或云存储]]
---
最后,当你在一台设备上恢复文件,但该文件从另一台设备上被移除时,也会发生此问题。这通常是因为文件名包含[[状态图标与消息#已跳过消息|非法字符]]。
## Android
**我的设备删除了通过同步服务接收的附件**
此问题很可能是 Google 或 Android 相册在管理你的附件。要防止系统更改通过同步服务接收的文件,请在 Android 设备上的仓库中添加一个 `.nomedia` [文件](https://support.google.com/android/thread/60342076/what-are-these-nomedia-files?hl=en)。
> [!tip]- 使用插件
> 社区插件 [Android Nomedia](https://obsidian.md/zh/plugins?id=android-nomedia) 可以简化此操作。在你的 Android 手机上安装它。请注意,`.nomedia` 文件不会通过 Obsidian Sync 在设备间同步。