有两个类似的项目,他们基于一套代码fork出来的,当一个项目改动了时,另一个项目想同步之前项目时,我们用补丁的方式来解决。
首先,在被复制的项目中执行,git format-patch Acommit..Bcommit ,这个会生成 A提交(不包含)到 B提交之间所有的提交 commit补丁,每一次的提交会生成一个.patch文件。当你有很多次commit时,会生成很多的.patch文件,我们将他放在/Desktop下,接下来用到。
接下来,我们在需要同步的项目下执行,有一个可以批量同步修改的命令方法,git am /Desktop/*.patch 只是因为我的冲突比较多,合并的commit不多,我一般会先检查是否有冲突,然后再合并,我会先执行。 git apply --check /Desktop/0001-fix.patch 没有冲突的话,无事发生,我们直接执行git am /Desktop/0001-fix.patch 。
有冲突的情况下,我会在.patch文件中找到冲突的提示报错,有些可能是项目删除文件,或者找不到之前的文件。我会将对应的--diff和修改信息删除掉,再次执行apply --check.没有异常,然后再执行am操作。
标签:同步,项目,Desktop,git,commit,patch From: https://www.cnblogs.com/wlxll/p/18474799