GoodSync 中文文档 下载 App

同步冲突处理——双向同步中的数据保护策略

冲突是怎么产生的

在双向同步(Synchronize)模式下,GoodSync 的理想状态是两边各自修改不同的文件。但实际使用中,经常出现两边在各自的时间点上修改了同一个文件的情况:

时间线:
T1: 两侧同时有文件 config.ini(版本 v1)
T2: 左侧用户 A 修改 config.ini → v2
T3: 右侧用户 B 修改 config.ini → v3
T4: GoodSync 同步,发现两侧都修改过 → 产生冲突

GoodSync 无法自动判断 v2 和 v3 哪个是「正确版本」,必须按照预设策略来处理。

内置冲突解决策略

在作业 Options → General → Conflict Resolution 中选择默认策略:

策略行为优点缺点
保留最新比较两侧文件的修改时间,保留时间较新的那个自动处理,最简单依赖时间戳可靠性;跨时区或设备时钟不准时可能出错
保留左侧始终以左侧为准,右侧被覆盖确定性强右侧的修改会丢失
保留右侧始终以右侧为准,左侧被覆盖确定性强左侧的修改会丢失
手动选择每次遇到冲突都暂停,弹窗让用户选最安全,不会丢失数据无法自动运行,每次同步需要人工介入
自动保留双方保留两侧文件,把一方重命名为带「Conflict」标记的副本最安全,零数据丢失会产生额外文件,需要后续清理

推荐策略:自动保留双方。这是唯一完全不丢数据的自动化策略,适合无人值守运行。后续定期清理带「Conflict」标记的文件即可。

手动选择的细节

如果选择手动策略,遇到冲突时会弹出对话框:

手动策略适合同步量小、但文件重要性高的场景——每次冲突都值得停下来人工判断。

为什么「保留最新」并不总是可靠

「保留最新」策略看起来最智能,但在实际中经常出问题:

如果选择「保留最新」,建议同时开启MD5 校验作为补充——GoodSync 可以在时间戳判断之外,额外对比两侧文件的 MD5 哈希确认是否真的相同。

冲突文件的清理

选择「自动保留双方」后,文件会被重命名。GoodSync 的命名格式为:

# 假设原始文件名:config.ini
# 冲突时,被覆盖的一方会被重命名为:
config.ini Conflict 2026-10-13 14-30-22.ini

定期检查目标目录中带「Conflict」标记的文件,确认内容后手动删除不需要的版本即可。这也是为什么版本历史功能建议同时开启——它提供了另一层数据保护。

避免冲突的策略

比起冲突发生后解决,更好的做法是在源头上减少冲突:

冲突日志

GoodSync 会把所有冲突事件记录到日志文件中:

建议在重要数据的同步作业中定期查看日志,确认没有意外的冲突处理结果。