场景:某个git仓库原有 master 分支,后面自己本地新建了一个项目,然后把新建的这个推到了这个仓库的另外一个分支 feature/vue-pc 。现在要对这两个分支进行合并,该如何操作?

正常情况是直接git merge 这两个分支,但是git会报错:

fatal: refusing to merge unrelated histories

意思是:致命:拒绝合并不相关的历史 ,因为没有共同提交记录历史,相当于是两个完全不同的仓库一样。

解决方案:采用git rebase --onto变基的方法
1.首先为了安全起见,先从master上拉出一个新的分支feature/vue-pc3进行操作。

git checkout -b feature/vue-pc3

2.然后把该分支提交到远程

git push --set-upstream origin feature/vue-pc3

(备注:不提交的话第三步rebase会报错如下图所示—待研究)
在这里插入图片描述
3.执行git rebase --onto 进行变基操作

git rebase --onto feature/vue-pc

在这里插入图片描述
4.然后在该分支上拉取允许不相关历史的操作,然后手动解决冲突。

git pull --allow-unrelated-histories

在这里插入图片描述
5.解决冲突以后,再按正常的步骤提交即可(如上图所示)。

git add .
git commit -m 'merge: xxx'
git push
Logo

前往低代码交流专区

更多推荐