Answers:
Rsync不会尝试解决冲突。这不是它的工作。Rsync甚至没有办法检测到双方都修改了该文件,因为它没有有关任何公共祖先的信息。
使用默认选项,源文件将无条件复制到目标,从而覆盖目标文件。使用选项-u
,仅在目标文件丢失或早于源文件时才复制源文件。使用选项--ignore-existing
,仅在目标文件不存在时才复制源文件。
如果要检测冲突,则需要一个知道文件上次同步时间的工具,以便它可以将{目标=旧版本,源=新版本}与{目标=新版本1,源=新版本2)区分开来。 }。使用Unison,它可以做到这一点。Unison是双向同步器:它将自上次同步以来已被修改的文件复制到未修改文件的那一侧。如果双方都没有被修改,或者双方都被相同地修改,则它什么都不做。如果双方的修改方式不同,它会告诉您并允许您选择跳过,向一个方向复制或向另一个方向复制。
如果要自动解决冲突,即自动合并(在可能的情况下-总是有必要进行手动合并的情况),请使用版本控制系统,例如git。