原因
1.本项目a开发时基于其他项目组的一个项目b进行扩展开发,但是b项目没有开发完,我们也要赶进度,于是基于b项目的主分支,copy出来后,新建了一个新的仓库,进行新的开发。然后,a,b项目都开发完了,现在a项目要发布到线上,需要合并b项目代码仓库的代码。
方案
1.添加b的代码的源,作为新的源,命名为other。
git remote add other http://….
2.获取b的代码
git fetch other
3.新建一个分支存放b的代码
git checkout -b newbranch other/dev
4.在切换为dev分支
git checkout dev
5.在合并代码
git merge newbranch
问题
1.为何可以直接merge,本质上这2个库是有共同的祖先的。因此可以直接merge。调用git merge-base dev new,是有共同祖先的。
2.没有共同祖先怎么破,已经找不到了,直接使用git merge newbranch 时报错的,
那如何,使用命令如下:
git merge newbranch –allow-unrelated-histories
可以直接强行merge。只不过要解决冲突的文件更加多了。