上期讲了如何复制别人的仓库,前提条件是新仓库没有任何文件,即是一个空的仓库。今天讲讲如何将自己已经用的仓库合并到别人已使用的仓库中去。
假设a为自己仓库,b为测试仓库。现要将a仓库的代码推到b仓库去。有两种方法:第一将a的代码推到b上,第二从b拉取a的代码。这就涉及到如何建立远程仓库的连接。
一、将a代码推到b中
1、在a仓库建立与b仓库的远程连接
---> git remote add res_b(b仓库的别名) xxx.git(b仓库的代码地址)
此刻我们可以用git config -l来查看,这样我们就链接了两个远程仓库,a仓库的远程仓库名叫origin,b仓库的远程仓库名叫res_b。
2、将a仓库代码推到b仓库中
--->git push res_b master:dev
将a仓库master上的代码推到远程res_b仓库dev(新分支)上
3、在b仓库拉取刚推过来的代码
--->git pull
--->git checkout dev
拉取所有并跳转到dev上。需要注意的是:此刻建立的是dev与远程res_b/dev的链接。
若仓库a的代码没有推到远程origin/master上,那么master分支的代码是不会推到res_b仓库中的。
二、从b仓库拉取a仓库的代码
1、在b仓库建立与a仓库的连接
--->git remote add res_a(a仓库别名) xxx.git(a仓库地址)
2、下载a仓库代码
--->git fetch res_a
3、新建分支,并与远程仓库分支关联起来
--->git checkout -b dev(新分支) res_a/master
此刻新建的分支并会跳转到该分支,该分支此刻也连接着origin/dev这个远程分支
4、跳转到要合并的分支
---> git checkout master
---> git merge dev(新分支)
此时会遇到非关联关系拒绝合并问题,在后面加上--allow-unrelated-histories来解决。
---> git merge dev --allow-unrelated-histories
如有文章有问题,欢迎留言告知