有两个远程仓库,一个叫learning 一个叫 egg_learn
需要把learning仓库的mater分支作为主分支,把egg_learn仓库的master分支合并到learning仓库的master分支。
流程如下:
在learning仓库的本地把egg_learn添加为远程仓库;
再把egg_learn的master分支拉到learning仓库的本地重命名为needMerge分支(名字不一定是needMerge,但一定不能为master);
在learning仓库的本地master分支上合并needMerge分支;
最后push到learning仓库的远程origin仓库。
- 克隆主仓库代码
git clone git@github.com:user/learning.git
(
此时进入learning目录,
git remote
只有一个远程仓库origin
) - 将 egg_learn 作为远程仓库,添加到 learning 中,设置别名为 needMerge
git remote add needMerge git@github.com:user/learn_egg.git
(
此时git remote
有两个远程仓库origin、needMerge
) - 从 远程仓库egg_learn中拉取数据到本仓库
git fetch needMerge - 将 egg_learn 仓库拉取的 master 分支作为新分支 checkout 到本地,新分支名设定为 egg
git checkout -b egg needMerge/master
(此时已经创建了本地的egg分支,且身处egg分支) - 切换回 原learning仓库 的 master 分支
git checkout master - 将 egg 合并入 远程learning仓库 的 master 分支
git merge egg
如果第 6 步报错 fatal: refusing to merge unrelated histories
执行下面命令 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
git merge egg --allow-unrelated-histories
- 推送新仓库代码到新仓库远程分支 (在master分支上执行git push )
- 删除远程分支needMerge
git remote remove needMerge
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。