由于在开发时,并没有从master分支拉取分支,直接复制代码进行测试,造成在两个机器上产生两个不同版本的repo1_test 和repo2_test仓库。
后续开发需要基于两个测试完成后合并的master分支。现将两个不同版本的repo1_test 和repo2_test仓库需要合并到master分支。也就是完成下图所示的工作流程:
1 从repo1_test和repo2_test克隆出空git仓库
git clone --bare <workspace>/.git repo1_test.git
2 在mster中将repo1_test添加为远端仓库,并设置别名repo1
git remote add repo1 <file path>/repo1_test.git
3 从repo1_test中拉去数据到本仓库
git fetch repo1
4 从远端repo1仓库的master分支拉取数据作为新分支checkout到本仓库的新分支feature/repo1
git checkout -b feature/repo1 repo1/master
5 我们在feature/repo1分支下将master分支进行合并,以免对主分支的代码造成影响。
git merge master
此时应该会报错
fatal: refusing to merge unrelated histories
使用–allow-unrelated-histories标志以这种方式处理拉请求:
git pull origin branchname --allow-unrelated-histories
6 将master合并到feature/repo1后,切换到master分支,在进行feature/repo1与master分支的merge, feature/repo1会保留repo1_test仓库的历史提交信息。
git checkout master
git merge feature/repo1
讲道理,这里第五步可以不做,直接在master分支中对feature/repo1进行merge,我这样做感觉是多此一举
经过上述的操作,提交记录如下
对repo2_test的操作同上。
经过上面的操作,就可以完成不同仓库代码的合并
来源:CSDN
作者:小灰奇
链接:https://blog.csdn.net/QS_0928/article/details/103792856