合并多个git仓库,保留提交的历史记录

时间:2022-01-07 17:55:25

两个不同地址的库:

https://127.0.0.1/mygroup/project1.git,分支dev
https://127.0.0.1/mygroup/project2.git,分支dev

现在需要把这两个git仓库的dev分支合并到一个新的git仓库的dev分支:

https://127.0.0.1/mygroup/allprojects.git

按以下步骤操作:

一、克隆allproject到本地

git clone https://127.0.0.1/mygroup/allprojects.git

二、切换到allprojects的dev分支

git checkout dev

三、添加project1远程仓库,命名为project1。

git remote add project1 https://127.0.0.1/mygroup/project1.git

四、从远程仓库拉取project1

git fetch project1

五、将project1仓库拉取dev分支作为新分支checkout到本地,新分支名设定为project1-dev

git checkout -b project1-dev project1/dev

六、切换到allprojects的dev分支

git checkout dev

七、将本地的project1-dev合并到当前的dev分支

git merge project1-dev

如果报错:fatal: refusing to merge unrelated histories … 则使用加上一个参数: git merge project1-dev --allow-unrelated-histories

同样,合并project2仓库,重复步骤三到七。

八、最后,推送合并后的dev分支到远程即可

git push origin dev