如何恢复对同一篇 Obsidian 日记笔记的两份离线修改
如果您在两台设备上离线编辑了同一篇 Obsidian 日记笔记,在决定保留哪些内容之前,请先保留这两个版本。比对它们并整理出一篇经过审核的笔记,在重新打开并检查最终结果之前,请务必保留原始副本。本指南以 Obsidian Sync 为准;其他同步工具的机制可能有所不同。
第一步:确保两份修改安全无虞
暂停在两台设备上的编辑。如果设备仍处于离线状态,请在同步仓库之外的某个位置分别复制一份各自的版本,并使用不同的文件名,例如 `Diary-device-A-backup.md` 和 `Diary-device-B-backup.md`。第一步千万不要进行重命名、删除、重新安装、重置或强制同步等操作:您需要的是独立的副本,以防后续操作更改仓库中的内容。如果某台设备尚未重新连接网络,在其笔记备份完成之前,请避免让其重新联网。
当两台设备在同步前均修改了同一文件时,就会产生冲突。Obsidian 的官方文档解释了可用的处理选项,但日记段落的本意和先后顺序仍需要您亲自审查。[Obsidian Sync 冲突排查](https://obsidian.md/help/sync/troubleshoot)
选择 Obsidian Sync 处理冲突的方式
在 Obsidian 1.9.7 及更高版本中,在每台设备上依次选择 **设置 → 同步 → 冲突解决 → 创建冲突文件**。默认的自动合并可能需要后续清理。这些设置是因设备而异的。[Obsidian Sync 冲突排查](https://obsidian.md/help/sync/troubleshoot)
重新联网并查看同步活动后,检查原文件以及名为 `original-note-name (Conflicted copy device-name YYYYMMDDHHMM).md` 的文件。后者包含检测到冲突的设备上的修改;原文件则保留远端版本。这两个标签都不会直接标明您到底打算保留哪份文字措辞。[Obsidian Sync 冲突排查](https://obsidian.md/help/sync/troubleshoot)
比对两份笔记并进行人工合并审核
将原文件和冲突副本并排打开。从头到尾比对全文,包括开头、日期、刚刚修改过位置附近的段落以及结尾。标记仅出现在其中一份副本中的内容。日记文本可能存在看似完全相同的段落,或者对同一句话的不同修改;请根据上下文含义和您的记忆来做决定,而不是仅凭匹配的行数。
创建一个临时命名的第三个文件,例如 `Diary-merge-review.md`。从两个版本中复制出您想要保留的内容,手动解决重叠部分。保持顺序清晰易懂:如果内容按时间顺序记录了事件,请尽可能保留该时间脉络;当您无法确定两次修改中哪一个才是初衷时,请将两者都保留下来并附上明确的待查备注,切勿盲目做决定。这是一种审慎的编辑方法,而非 Obsidian 自带的功能或自动合并的保证。
在替换原本的主日记笔记之前,请检查该审核文件是否已包含您想要保存的每一处段落。关闭并重新打开它,然后再次将其与两个源副本进行比对。如果笔记较长或一时无法确定,请保留副本原样,稍后再来处理合并。
利用版本历史记录作为备用恢复途径
Obsidian Sync 会保存笔记版本,其版本历史记录视图可让您查看之前的内容并恢复某个版本。操作步骤是打开笔记的**打开版本历史记录**,选择一个版本进行查看;只有当您确定该版本正是您所需时,才使用**恢复**;恢复操作会替换该笔记现有的全部内容。保留时间的长短取决于您的 Sync 订阅方案,因此版本历史记录只是退路,不能替代事先制作独立副本的做法。[Obsidian Sync 版本历史记录](https://obsidian.md/help/sync/version-history)
关于冲突发生的时间,请在同步日志中查找“Conflict”或“Merge Conflicts”。对于意外丢失的笔记,请使用文档中说明的已删除文件版本历史记录视图。在恢复的文本与您的备份完成比对之前,请务必将其单独存放。[冲突排查](https://obsidian.md/help/sync/troubleshoot) [版本历史记录](https://obsidian.md/help/sync/version-history)
何时可以安全删除多余的副本?
只有在最终笔记已保存、重新打开并与两份保留的文本比对无误后,您才应该考虑清理工作。在确认合并后的笔记包含所有您需要的段落之前,请始终保留原始副本。如果要删除它们,请在两台设备均完成同步后,确认主日记笔记依然完好无损。
请不要将这种行为直接套用到所有笔记应用或文件同步服务上。例如,Syncthing 的文档指出,同时发生的不同文件修改可能会生成 `.sync-conflict-...` 文件;文档同时说明此类文件会被视为普通文件并传播到各个设备。这与 Obsidian 文档中记载的命名方式和冲突控制截然不同,也正说明了为何在删除副本之前,必须搞清楚是哪款产品创建了该副本。[Syncthing:理解同步](https://docs.syncthing.net/users/syncing.html#conflicting-changes)
