Git - 从不同的仓库合并分支

7
我希望这不会显得太过明显。我有两个git仓库。我们决定将第一个仓库中的一个分支拆分为git子模块。现在我一直在使用这个子模块,但是有人一直在向第一个仓库中已经变成子模块的分支推送提交。
如何将第一个仓库中的分支更改合并到新创建的第二个仓库中?(现在我们将其用作子模块)
我尝试将另一个远程添加到第二个仓库中,并跨越合并该分支,使用:
git remote add otherOrigin git-Blah@blah.blah:originalRepo.git
git merge otherOrigin originalBranch

然而我得到了:
fatal: 'otherOrigin' does not point to a commit

谢谢


似乎是 https://dev59.com/O3M_5IYBdhLWcg3wUxdB 的重复。 - Michel Daviot
2个回答

2
如果两个仓库,针对给定的分支(在Repo1中作为子模块拆分,同时在Repo2中保留),最初具有公共历史记录,那么理论上应该可以执行以下操作:
  • 将Repo2中的该分支拆分为独立仓库
  • 将该独立仓库添加为当前子模块仓库的远程仓库
  • 尝试从那里执行合并。
但是,如果您必须经常重复此过程,则可能会很麻烦(除非您可以将其脚本化)。

......然后再教训那些屡次搞砸的人。;-) - ebneter
2
抱歉我之前没有接受这个,我太忙了,一直在敲打人们的头部。 - binarycreations
1
@Graham:没问题。我曾经有过回答被接受的时间超过三年的经历 ;) 而且我也不太确定在那段时间里他们都在忙些什么... - VonC

1

克隆您的存储库。现在使用filter-branch仅保留应在您的子模块中的更改。将此回购作为您的子模块的远程。从该新远程获取分支。使用git rebase --root --onto将更改“放置”到您的子模块历史记录中的某个点。

希望这可以帮助您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接