将Mercurial项目转换为Git
我需要将一个mercurial项目转换为一个git项目,但我想保持提交历史不变。 我目前的解决方案是只删除HM相关的文件,然后git init &&手动添加我需要的文件,但这不会保留历史记录。 有没有解决这个问题的方法?
您可以尝试使用快速导出:
cd ~
git clone https://github.com/frej/fast-export.git
git init git_repo
cd git_repo
~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
git checkout HEAD
也看看这个SO问题。
好吧,我终于解决了这个问题。 这是在Windows上使用TortoiseHg。 如果你不使用它,你可以在命令行上执行它。
hggit
: 打开一个命令行,输入一个空目录。
git init --bare .git
(如果你不使用裸回购,你会得到一个类似abort: git remote error: refs/heads/master failed to update
的错误abort: git remote error: refs/heads/master failed to update
cd
到您的Mercurial存储库。
hg bookmarks hg
hg push c:/path/to/your/git/repo
在Git目录中: git config --bool core.bare false
(不要问我为什么,关于“工作树”的git config --bool core.bare false
严重不友好。我发誓写实际的代码比使用Git更容易。)
希望它能起作用,然后你可以从这个新的git仓库推到非光面仓库。
如果您想将现有的mercurial仓库导入到'GitHub'仓库,现在您可以简单地在这里使用GitHub Importer [需要登录]。 没有更多的快速出口乱七八糟(虽然它是一个非常好的工具)
你会得到你所有的提交 , 分支和标签完好无损。 另一个更酷的事情是,你也可以改变作者的email-id 。 看看下面的截图:
链接地址: http://www.djcxy.com/p/6413.html