Git - 来自不同存储库的Merge分支

时间:2011-06-21 22:11:16

标签: git merge branching-and-merging

我希望这似乎并不明显。我有两个git存储库。我们决定将一个分支从第一个repoistry拆分为一个git子模块。现在我一直在使用这个子模块,但是人们已经将提交到第一个存储库到了作为子模块的分支。

如何将第一个存储库中分支的更改合并到新创建的第二个存储库中? (我们现在用作子模块)

我尝试在第二个回购中添加另一个遥控器并使用以下方法合并该分支:

git remote add otherOrigin git-Blah@blah.blah:originalRepo.git
git merge otherOrigin originalBranch

但是我得到了:

fatal: 'otherOrigin' does not point to a commit

由于

2 个答案:

答案 0 :(得分:2)

如果两个repos,对于给定的分支(在Repo1中作为子模块分割,同时保存在Repo2中),最初具有共同历史,那么它应该是可能的,从理论上讲:

  • 将Repo2中的分支拆分为单独的仓库
  • 将该个人仓库添加为当前子模块仓库的远程
  • 尝试从那里执行合并。

但如果您必须定期重复该过程(除非您可以编写脚本),这很快就会成为拖累。

答案 1 :(得分:1)

克隆您的存储库。现在使用filter-branch来保持对子模块中应该包含的更改。将此repo添加为子模块的远程。从该新远程获取分支。使用git rebase --root --onto将更改“放置”到子模块历史记录中的某个点。

希望这有帮助。