如何将包含所有分支的 Git 仓库从 Bitbucket 迁移到 GitHub?

365

如何使用最佳方式将包含所有分支和完整历史记录的Git仓库从Bitbucket迁移到GitHub?

是否有脚本或命令列表需要使用?


11
Github 提供工具和文档来实现这个功能: https://help.github.com/articles/importing-from-other-version-control-systems-to-github/ https://help.github.com/articles/importing-a-git-repository-using-the-command-line/ - mems
有点晚了,但这是一个迁移脚本:https://gist.github.com/chinmaya-n/cff02f1277c811deab2e550f2aad9967 - inblueswithu
12个回答

2

继@MarMass的回答之后,如果GitHub导入器不断重定向您到认证屏幕,则您需要在BitBucket中创建一个应用程序密码以导入您的私有存储库:

  1. 转到Bitbucket > 个人设置 > 应用程序密码
  2. 创建具有存储库读取访问权限的应用程序密码。
  3. 在GitHub导入器中提示输入用户名/密码时,请使用您的BitBucket 用户名和上面创建的令牌作为密码。

在成功解决身份验证问题后,我的导入也出现了以下错误消息:“将提交推送到GitHub时出错。”

这里的问题,至少对我来说,是我的GitHub帐户被设置为“阻止命令行推送暴露我的电子邮件”,而我正在尝试从Bitbucket导入的存储库包含来自我的个人电子邮件地址的提交。在暂时禁用此设置(GitHub > 设置 > 电子邮件)后,一切都很顺利。


感谢您的帖子。我尝试使用我的电子邮件,但它没有起作用,但使用用户名却完美运行。 (而且最受欢迎的答案对我无效,因为我没有权限访问存储库的设置) - undefined

-1

最简单的方法:

git remote rename origin repo_bitbucket

git remote add origin https://github.com/abc/repo.git

git push origin master

一旦向 GitHub 推送成功,请通过以下方式删除旧的远程:

git remote rm repo_bitbucket

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接