2015-10-05 91 views
1

我有一个名为'A'的项目,这个项目有很长的Git历史。在项目'A'切换IDE的某个时刻,开发人员不知道它从git仓库断开连接,并创建了一个新的本地仓库,让我们打电话给'B'。合并git回购到另一个回购

'B'有几个提交,但仍然基于最近提交的'A',自从转移以来一直未更改。

现在我真的想把'B'带回'A',但如果可能的话保持它的提交。任何人都可以就如何实现这一目标提供一些建议吗?

编辑:被标记为this的副本但是,在该例中,第二个回购不是第一个回合,而是它是一个单独的模块,希望被添加到项目中,而在本例中它是旨在取代原来的。

+0

是否要合并B提交到A,但要保持代码? –

+0

那么,理想情况下最终的结果将是一个“B”的镜像,但保持“A”hisotry在节拍 – xceph

+1

可能重复[你如何合并两个git存储库?](http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repository) – Joe

回答

0

按照下面的步骤:

  1. cd path/to/A
  2. git remote add fork https://github.com/someone/B(与B网址替换URL)
  3. git pull fork
  4. git checkout master(以您要合并的分支名称替换master B承诺)
  5. git merge fork master(替换masterB分支)

如果你有冲突,你将不得不解决这些问题,但由于A不改变,你可能不会有任何冲突。总之,你可以在一个命令所做的一切:

git pull <url-of-repo-B> master 

(再次,更换master与源科)

+0

几个问题:$ git remote add fork〜/ Projects/B $ git pull fork --all fatal:fetch --all没有存储库参数 $ git结帐A 已在'A' 您的分支与'origin/A'保持同步。 $ git的合并叉主 合并:叉 - 不是我们可以合并 $ git的合并叉 合并:叉 - 不是我们可以合并 – xceph

+0

@xceph尝试'混帐拉fork'代替。另外,你可能会发现最后一条命令很有用。在你的'A'仓库中运行:'git pull master'。 –