美文网首页
git之两个仓库的合并操作

git之两个仓库的合并操作

作者: 智明书 | 来源:发表于2018-07-21 16:03 被阅读24次

​ 有这样的一种场景,某个项目一直是在本地提交代码,有一天PM找到你说,所有的代码现在需要提交到远程仓库,进行统一的管理。于是我们就需要把一个已经提交N多次的本地仓库转移到一个新建立的远程仓库,并且所有提交历史还应该原封不动的被保存下来,以备今后进行问题追溯。下面记录处理方法。

操作步骤

​ 1. 假设本地仓库是project-a,新建立的远程仓库是project-b,首先将远程仓库project-b拖到本地,然后进入到project-b仓库的目录中:

git clone https://gitxxx.com/yourremoterepos/project-b.git
cd path/to/project-b

​ 2. 将project-a当作project-b的一个远程仓库,然后通过git remote add命令将’远程仓库‘project-a添加到project-b中:

git remote add project-a path/to/project-a

​ 3. 添加了远程仓库后,就可以通过git fetch <远程主机名>命令来对远程仓库进行操作,接下来我们当然是将project-a的所有分支都取下来:

git fetch project-a

​ 通过git branch -a看到仓库下的所有分支情况,如下project-a的所有分支(该例子只有一个master分支)都被列出:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/project-a/master

​ 4. 将project-a的主分支merge到project-b,当然不一定merge主分支,指定任意想merge的分支即可:

git merge --allow-unrelated-histories project-a/master

​ 5. 此时git branch -a可以看到project-a还在该仓库中,但我们已经不需要它了,git remote remove删除之:

git remote remove project-a

​ 接下来都是常规操作了,如果有远程分支,将project-b的本地更新提交到远程即可git push orgin master。另:Webstorm集成了非常优秀的git可视化工具,可以直观的看到各个分支的情况,以下即表示了一个只有Initial commit的远程分支test如果将具有两次提交(ff和gitignore)的test_temp分支合并的过程:

[图片上传失败...(image-f2046-1532160206505)]

总结

​ 合并两个仓库的根本原理是用到了git remote指令,将待merge的仓库project-b当作一个远程仓库去处理即可。

参考

stackoverflow: How do you merge two Git repositories?

相关文章

  • SourceTree合并两个仓库的代码

    现在有两个GIT仓库,a和b。要把仓库b的代码合并到a上,操作步骤如下: 点击仓库a的设置,在远程仓库添加仓库b的...

  • git之两个仓库的合并操作

    ​ 有这样的一种场景,某个项目一直是在本地提交代码,有一天PM找到你说,所有的代码现在需要提交到远程仓库,进行...

  • Git

    Git 工具 - 子模块 git合并两个不同的仓库 A successful Git branching mode...

  • gitDemo远程操作演练

    gitDemo远程操作演练 1.将本地仓库与远程仓库进行合并 git@github.com:longxianwen...

  • merge时 source 落后

    先把本地新增的文件commit之后再去合并远程仓库的,具体操作如下:git add .git commit -m ...

  • Git 仓库 之 线上 Git 分支合并

    温馨提示:如果你不懂git仓库原理,建议 线下 操作合并. 线下合并,请查看下一篇文章 http://www.ji...

  • Git操作之合并其他分支到主分支

    Git操作之合并其他分支到主分支 首先切换到主分支git checkout master 将其他分支的代码合并到主...

  • git 命令

    git命令手册 分支 合并 远程仓库

  • Git合并两个不同的仓库

    1.说明 Git合并两个不同的仓库,两个都是已经存在的仓库,比如grpc-demo和Telemetry,演示将gr...

  • git 合并两个仓库

    合并两个git仓库 例如: 需要5步: 总结:思路就是把TestPro1当做TestPro2 的一个分支,然后合并...

网友评论

      本文标题:git之两个仓库的合并操作

      本文链接:https://www.haomeiwen.com/subject/ligxfftx.html