将包含所有分支和完整历史的Git存储库从Bitbucket移动到GitHub的最佳方法是什么?

是否有我必须使用的脚本或命令列表?


当前回答

最简单的方法:

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

其他回答

有导入一个存储库与GitHub导入器

如果你有一个项目托管在另一个版本控制系统上,如Mercurial,你可以使用GitHub Importer工具自动将它导入到GitHub。

在任意页面的右上角单击,然后单击“导入存储库”。 在"Your old repository's clone URL"下,输入你想要导入的项目的URL。 选择您的用户帐户或拥有存储库的组织,然后在GitHub上键入存储库的名称。 指定新的存储库应该是公共的还是私有的。

公共存储库对GitHub上的任何用户都是可见的,因此您可以从GitHub的协作社区中受益。 公共或私有存储库单选按钮私有存储库仅对存储库所有者以及您选择与之共享的任何合作者可用。

检查您输入的信息,然后单击开始导入。

当存储库完全导入后,您将收到一封电子邮件。

将项目导入GitHub 使用GitHub Importer导入存储库

如果你在GitHub上找不到“导入代码”按钮,你可以:

直接打开GitHub Importer并输入URL。它看起来像: 给它一个名字(或者它会自动导入这个名字) 选择Public或Private存储库 单击“开始导入”

2016年5月,GitHub宣布能够“导入带有大文件的存储库”。

根据@MarMass的回答,如果GitHub导入器不断将你重定向到身份验证屏幕,你需要在BitBucket中创建一个应用程序密码,以便导入你的私有存储库:

去Bitbucket >个人设置>应用程序密码。 创建具有存储库读访问权限的应用程序密码。 当在GitHub导入器中提示输入您的用户名/密码时,输入您的BitBucket用户名,并将上面创建的令牌作为密码。

在设法解决身份验证问题后,我的导入也出现了以下消息:“有一个错误将提交推到GitHub.”。

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

最简单的方法:

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

Se移动存储库从Bitbucket到GitHub。

这帮助我从一个Git提供者切换到另一个提供者。最后,所有提交都在目标Git存储库中。简单明了。

Git远程重命名原点bitbucket git远程添加origin https://github.com/edwardaux/Pipelines.git Git push origin master 一旦我很高兴在GitHub上的推送成功了,我就可以了 通过以下命令删除旧的远程: Git远程rm bitbucket