将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。 如果你不使用它,你可以在命令行上执行它。

  • 安装TortoiseHg
  • 右键单击资源管理器中的空白区域,然后转到TortoiseHg设置:
  • 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

    上一篇: Convert Mercurial project to Git

    下一篇: module maven project with nested modules