srk*_*ing 5 git mercurial version-control-migration
我必须将分支 Mercurial 存储库转换为 git 存储库,并继续将更改从 Mercurial 拉到 git(仅限单向)一段时间。现有的 hg-to-git 答案似乎无法正确处理分支。例如,具有“default”和“br1”分支的小型 hg 存储库会产生以下结果:
$ 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
Run Code Online (Sandbox Code Playgroud)
Git 认为只有一个分支“master”。 如何使我的 Mercurial 分支显示为同名的 git 分支? 我可以使用“master”而不是“default”,但我必须在 git 中拥有所有其他命名分支。
这些分支作为远程分支导入,这意味着它们相对于远程存储库,而远程存储库恰好是 hg 存储库。如果您输入,git branch -a您将能够看到所有分支。
您可以像这样创建这些远程分支的本地分支:
git branch <localname> <remotename>
Run Code Online (Sandbox Code Playgroud)
例如:
git branch br1 hg/br1
Run Code Online (Sandbox Code Playgroud)