我在Bitbucket上托管了一个HG项目,我想把它转移到Github。
我遵循了这里的指导原则,在我的TortoiseHG上安装了hggit扩展。
我已经在Github上创建了一个存储库,但还没有初始化它(它显示了那个说明页面),所以我无法克隆那个git存储库。
我下一步该怎么办?
编辑:抱歉忘了添加,从那时起我将使用git。
更新:我借用了一台mac,并使用fast-git-import
轻松地进行了转换。如果有人尝试过下面的解决方案并在Windows下工作,请投足够多的票,我会给出答案。
刚刚发现我的问题是在Windows(7)上将Mercurial(hg)存储库转换为Git的重复问题。
它运行良好。既然这一切都在赛格温的统治下,就没有必要使用选美比赛。
除了这个问题的答案。我只需要使用ssh-keygen -t rsa
在Cygwin下生成一个密钥。然后,我将.ssh/id_rsa.pub
中公钥的内容复制到Github存储库设置中。
我通过git remote add origin (repo address)
将git原点设置为Gihub地址。然后我终于可以在Github上git push origin master --force
了。
您应该在工作站上本地完成hg-git进程(如hg gexport
)。
然后,当你有一个git repo镜像你的初始Hg repo时,你可以添加一个GitHub来源,并推送到它:
git remote add origin https://github.com/user/yourProject.git
git push origin master
git push --all
然而,LazyBadger评论道,OP可能只想在这个过程中使用Mercurial,而根本不想安装Git,这是正确的。
在这种情况下,页面"hg-git on GitHub"包含:
如果你从现有的Hg存储库开始,你必须在你有推送访问权限的地方设置一个Git存储库,在
.hg/hgrc
中添加它作为默认路径或默认推送路径,然后在项目中运行hg push
例如:
$ cd hg-git # (an Hg repository)
$ # edit .hg/hgrc and add the target git url in the paths section
$ hg push
这将把你所有的Hg数据转换成Git对象,并将它们推送到Git服务器。
假设基本VCS仍然是Mercurial和工具-TortoiseHG
- 你必须准备好Git repo(空的,可从本地推送)
- 如果你已经添加并使用(即配置正确-可以用Github拉|push)hggit,你必须将git URL添加到(本地)repo-hgrc([paths]部分)
- 将OpenSSH密钥添加到Github,在THG中验证基于密钥的授权(盛会)
- AFAIK,只有
git+ssh://git@github.com/user/repo.git
URL适用于hg-git的github
- AFAIK,只有
- 之后,您将有两个远程链接的回购,对于这两个回购,您都可以从"同步"选项卡推送/拉出
插件
mercurial.ini、git和github相关中的相关部分
[ui]
...
ssh = "...TortoisePlink.exe"
...
[auth]
github.com.prefix = github.com
github.com.username = lazybadger
不能说最后一节,只记得"何时"one_answers"为什么"