背景:公司已有的安卓源码基线已经做得差不多了,但缺货,得换基线。这样的话,就需要把原来基线的提交挪到新的基线上去。
操作:
1、查看原来的记录,一点点挪过去.明显耗时
2、带git的记录的话,打个git补丁,把补丁挪到新的基线,打上补丁即可。
1、操作没毛病,但效率来说,非常的低效,还容易乱。
所以,一般使用第二种方法。
打补丁命令,git format-patch ccf8805…0d0ba29
解释一下
git format-patch:是打补丁命令,可以把多个提交记录分别打补丁的形式。
ccf8805:第一个提交的哈希值
…:两个提交之间的…,连接两个提交,格式来的,不用多管
0d0ba29:想要从第一个提交到本提交的哈希值
执行命令后,就会生成00开头的很多patch。比如
001.patch
002.patch
003.patch
说明ccf8805…0d0ba29之间有三个提交
打补丁:
拷贝这些patch到另一个基线的源码根目录,使用git am命令打补丁。
git am 001.patch 打第一个补丁
git am 002.patch 打第二个补丁
git am 003.patch 打第三个补丁
git am 00* 打所有的补丁,从001开始。
顺利的话,完美打上去,并且原来的提交信息和原来的基线一样。
不顺利的话,新的基线更改的地方,和打的补丁有冲突,那就麻烦点,要解决冲突,再提交就好。
冲突参考:https://blog.csdn.net/ranhui_xia/article/details/17616965