将一个Bitbucket代码仓库从一个账户复制到另一个Bitbucket账户

25

我的朋友在Bitbucket上有一个代码库,我想将该代码库复制到我的Bitbucket账户中(以便将来参考,以防他删除了该代码库,我仍然有一份拷贝)。

我尝试了裸克隆、镜像推送等方法,但是没有成功 :(

也许我缺少某些命令。

PS:该代码库的类型是Git(不是Hg)。


1
类似于 https://dev59.com/pHM_5IYBdhLWcg3wMgAF#18336145 这样的东西? - Joachim Isaksson
类似于 git remote add github https://github.com/myhappyproject 这样的命令会将位于 https://github.com/myhappyproject 的仓库命名为 github,这样在下一个命令中,您可以执行 git push -f --tags github refs/heads/*:refs/heads/* 来推送到该 URL。 - Joachim Isaksson
3个回答

66
最近,我需要对多个代码库进行此操作。我找到了一种比在本地克隆代码库并将其推送到另一个Bitbucket远程仓库更好的方法。
Bitbucket提供了导入代码库功能,在Repositories > Import Repository下可以找到它。

Bitbucket - Import Repo

只需提供仓库的https URL和访问凭据,Bitbucket将为您完成其余工作。 我知道这是一个老问题,但这种方法更简单,可以节省很多时间。希望这能帮助其他人在未来。

这个导入操作也会导入团队吗?(这可能是一个愚蠢的问题 - 我是 Bitbucket 的新手) - darasd
抱歉,我不理解你的问题。如果你在团队中工作,这不会导入其他团队的存储库。如果这就是你想知道的。 - Nitish Parkar
它总是需要创建一个新的仓库吗? 我被授予了对一个新的但空的仓库的管理员访问权限,然后我需要导入不同的仓库。看起来它会创建一个新的仓库。 - NeverEndingQueue
是的,您可以使用poke答案中描述的方法。 - Nitish Parkar

13
如果您可以访问该存储库,那么将其克隆到本地计算机即可获得完整的副本。例如:

如果您有访问该仓库的权限,那么只需将其克隆到本地计算机即可获取完整的副本。例如:

git clone git@bitbucket.org:username/repository.git
现在,如果你想在线存储它的副本,你可以在Bitbucket上创建一个新的代码库来进行推送。填写表格后,Bitbucket会帮助你快速了解如何推送数据。选择 “我有一个现有项目” ,接下来会显示以下内容:

已经在你的计算机上有 Git 代码库了吗?让我们将它推送到 Bitbucket 上。

cd /path/to/my/repo
git remote add origin git@bitbucket.org:your_username/new-repo.git
git push -u origin --all # pushes up the repo and its refs for the first time
git push -u origin --tags # pushes up any tags

想从其他网站获取仓库吗?试试我们的导入器!

您只需要严密地遵循这些说明。但是,由于您已经克隆了仓库,所以您需要选择一个不同的远程名称,而origin已经被占用了:

git remote add mycopy git@bitbucket.org:your_username/new-repo.git
git push -u mycopy --all
git push -u mycopy --tags

或者你必须首先移除 origin 远程地址:

git remote remove origin
在推送之后,您在Bitbucket上的存储库将具有完整的内容,因此您的备份已准备就绪。
另一个可能更简单的选项是直接fork您朋友的存储库。您可以通过访问Bitbucket页面,然后点击左上角的“…”图标并选择“Fork”来完成这个操作。这将允许您在Bitbucket上直接创建存储库的副本。

1
@VonC 哈哈,你抓住我了!公平地说,在我点击保存按钮之前,我没有意识到这个问题是如此古老的。我归咎于未回答的问题列表排序太糟糕了;D - poke

4
我想指出,BitBucket已重新设计他们的网站,"导入存储库"功能现在在"创建存储库"("+"图标)菜单中作为选项。
您只需粘贴存储库URL并勾选"需要授权"复选框,它应自动填充您当前的登录凭据并自动填充slug名称。将slug更改为您想要的任何内容,然后单击导入。
导入完成后,您会收到一封电子邮件,在页面上有一个进度条,如果您想等待的话。
我还想指出,我可以发布答案,但不能评论Parkar的答案,因为我没有50个声望。
编辑:以防您还不知道如何找到存储库URL,您可以从存储库中获取URL,点击"克隆"按钮并复制克隆命令的URL部分。您可能还需要将选择下拉列表从SSH更改为HTTPS,以使授权自动工作。

这是今天最相关的答案。 - Anupam

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