问题描述
|
我希望这似乎并不明显。我有两个git存储库。我们决定将一个分支从第一个仓库拆分为一个git子模块。现在,我一直在使用此子模块,但是人们一直在将对第一个存储库的提交推入到子模块中创建的分支中。
如何将第一个存储库中分支的更改合并到新创建的第二个存储库中? (现在我们将其用作子模块)
我尝试使用另一个遥控器添加到第二个仓库中,并使用以下方法合并该分支:
git remote add otherOrigin git-Blah@blah.blah:originalRepo.git
git merge otherOrigin originalBranch
但是我得到:
fatal: \'otherOrigin\' does not point to a commit
谢谢
解决方法
如果对于给定分支(这两个存储库作为一个子模块在Repo1中拆分,同时保留在Repo2中),这两个存储库最初具有相同的历史记录,那么理论上应该可以:
将Repo2中的分支拆分为单个仓库
将该个人仓库添加为当前子模块仓库的远程仓库
尝试从那里执行合并。
但是,如果您必须定期重复该过程(除非您可以编写脚本),那么这很快就会变得很麻烦。
, 克隆您的存储库。现在,使用filter-branch仅保留对子模块中所做的更改。将此仓库添加为子模块的远程目录。从该新遥控器获取分支。使用
git rebase --root --onto
将更改“放置”到子模块历史记录中的某个点。
希望这可以帮助。