Git合并两个远程代码库

一:前提:

公司新项目基于老版本代码库迁移过来,在此基础上开发新的功能和改版,老版本代码由另一个团队继续维护,新版本需要将老版本后续更新的一些内容合并过来。

二、需求:

有两个远程代码库(两个代码库都是基于同一个版本进行后续功能开发),现在要将两个代码库的新更新的内容进行合并,同时合并后保留两个代码库的提交历史。

三、解决思路:

将其中一个代码库伪装作为远程分支,与另一个代码库进行合并。

四、准备阶段:

1、将两个远程代码库clone到本地,并将其备份好,防止合并失败或者本地代码库乱掉。
2、将两个代码库进行标记,分别为repo1和repo2,将repo1中的文件合入到repo2中。

五、操作过程:

1、在一个版本库中,将本地的另外一个版本作为远程仓库,这里,我在repo2下,将repo1作为远程仓库,并将repo1起别名为newrepo
#这里repo1_address为其代码库地址
git add remote newrepo ../repo1_address/
2、从repo1仓库抓取数据到本地仓库
git fetch newrepo
3、将repo1仓库抓取的master分支作为新的分支checkout到本地分支,新分支名为repo1
git checkout -b repo1 newrepo/master
4、切换到repo2的master分支
git checkout master
5、将repo1合并到master分支
git merge repo1
这样,就将两个代码库合并完成了,并且保留了提交日志。其实过程很简单,下面将一些注意事项写出来,供大家参考,并在实践过程中加以注意。

注意事项:

1、newrepo/master只是repo的别名,不要在上面操作删除分支等操作,还是原来的代码库,否则把别人正在用的分支删了那就呵呵了。
2、merge时使用idea工具的merge功能,一定要注意细节,尤其是不是自己写的代码和写的人确认,本人这次涉及到的改动文件近一千,简直要瞎了,慢工出细活。
3、merge后对原有功能进行回归测试,确定完全没问题再上线。
4、若是文件有冲突、或要建立子目录,建议在repo1中先解决,再进行如上操作。

你可能感兴趣的:(随笔)