部分git存储库合并

时间:2014-02-04 08:03:34

标签: git

我一直在研究我在GitHub中分叉的项目。我分叉的源项目最初是从Codeplex的Mercurial项目转换而来的。

现在我发现其他人已经将Mercurial项目转换为GitHub,但是在稍后阶段并在其中加入了一些git的好东西。 我想分叉另一个repo并重播我的提交,因为其他repo似乎是活跃的。我还希望使用原始Mercurial仓库中的新更改来更新新仓库。

所以这是场景:

My repo: 
hg1->hg2->hg3->my1->my2
               |
               ->my3
hgN is the original Mercurial commits, myN is my git commits.

Other guy:
HG1->HG2->HG3->HG4->HG5->og1->og2
HG1-HG3 are identical to hg1-hg3. Same file tree but with different hash though.
ogN are git commits by that other guy.

What I want:
HG1->HG2->HG3->HG4->HG5->og1->og2
          |
          ->my1->my2
            |
            ->my3

假设我已经克隆了两个repos并且我的更改包括一些分支,我将如何创建合并的repo?

如果我的更改是在一个分支中,该怎么办?我可以做一个简单的变基吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你的话,你想要从2创建1个repo(让它成为http://hg_repo.com url和my_repo with http://my_repo.com)。你可以尝试下一个方式:

git clone hg_repo
git remote add my_repo http://my_repo.com
git fetch --all
git checkout HG3
git branch my_new_branch
git cherry-pick my1
git cherry-pick my2