背景
有两个仓库地址,想要把其中的一个地址项目信息作为另外一个地址的一个子分支进行合并,合并所有历史提交消息。
假设
两个不同地址的库
项目1名为project1,git仓库为 http://gitlab.work.com/project1.git
项目2名为project2,git仓库为 http://gitlab.work.com/project2.git
目的是将project2的内容添加到project1中,并且不能丢失两个项目的历史提交记录。
具体步骤如下:
注意:需先将原项目的代码合并到一个分支,最终是分支的合并
project1新建分支b
Project2新建分支b
1、首先克隆项目project1:git clone http://gitlab.work.com/project1.git
2、给project1添加一个新的远程:git remote add origin2 http://gitlab.work.com/project2.git
3、这时项目有两个远程库,origin和origin2,验证一下:git remote -v
4、抓取project2:git fetch origin2
5、合并project2的b分支到project1的b分支:git merge origin2/b --allow-unrelated-histories
备注:`--allow-unrelated-histories` 允许不相关历史合并
6、处理合并冲突,然后提交 git commit -a -m"合并project2的b分支到当前项目"
7、移除project2的远程库:git remote rm origin2