git项目之间的commit同步

  有两个类似的项目,他们基于一套代码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操作。

  

posted @ 2024-10-18 18:01  艾路  阅读(8)  评论(0编辑  收藏  举报