将hg分支转换为git分支?

时间:2014-01-10 22:11:24

标签: git mercurial version-control-migration

我必须将一个多枝的mercurial repo转换为一个git repo 并且继续将mercurial中的更改提取到git(仅限单向)一段时间。现有的hg-to-git答案似乎没有正确处理分支。例如,带有'default'和'br1'分支的小hg repo会产生以下结果:

$ hg branches
br1                            3:a8914879f6bb
default                        2:4e6221bce113

cd ..
git-hg clone file:/path/to/hgrepo gitrepo

...<snip>
From .git/hgremote
 * [new branch]      br1        -> hg/br1
 * [new branch]      master     -> hg/master
From .git/hgremote
 * branch            master     -> FETCH_HEAD

cd gitrepo
git branch --list
* master

Git认为只有一个分支'主人'。 如何让我的mercurial分支显示为同名的git branches?我可以使用'master'代替'default',但我必须在git中拥有所有其他命名分支。

1 个答案:

答案 0 :(得分:1)

分支作为远程分支导入,这意味着它们相对于远程存储库(恰好是hg存储库)。如果您输入git branch -a,您将能够看到所有分支。

您可以像这样创建这些远程分支的本地分支

git branch <localname> <remotename>

例如:

git branch br1 hg/br1