如何将Bitbucket仓库迁移到Github?

sirbozc5  于 2023-09-29  发布在  Git
关注(0)|答案(4)|浏览(216)

我想将一个旧的Bitbucket仓库,包含多个分支,迁移到Github。为了实现这一点,我遵循了this的描述:

# add remote github repository
$ git remote add upstream https://github.com:USER/PROJECT.git
# push all branches <-- doesn't work
$ git push upstream master
$ git push --tags upstream

只有master分支被推送到Github仓库(也适用于git push --all upstream)。
为了将所有分支推送到Github,我需要分别执行checkoutgit push upstream
我如何在没有checkout的情况下将所有分支推送到Github?

omqzjyyz

omqzjyyz1#

按照以下步骤操作。
1.镜像源存储库。
git clone --mirror https://url-of-the-source-git-repo.git
1.转到新克隆的存储库
cd to-your-git-repo-folder.git
1.设置新的远程URL。
git remote set-url --push origin https://url-of-the-destination-git-repo.git
1.推送到新的回购
git push --mirror
通过执行这些命令,您将迁移到包含所有分支和提交的new repo。

zlhcx6iw

zlhcx6iw2#

你可以通过使用这个命令来实现。

git push REMOTE --mirror

你可以在这里读到更多关于它的信息

ubbxdtey

ubbxdtey3#

首先确保您有fetched all branches

git fetch --all

然后push all branches to the new remote

git push upstream --all
91zkwejq

91zkwejq4#

只是给任何偶然发现这一点的人一个提示,accepted answer只改变了git push的遥控器。因此,当你获取或拉取时,它仍然会引用BitBucket上的原始存储库。
为了避免这种情况,只需在设置远程url时删除--push即可:

git remote set-url origin [email protected]:org/my_repository.git

对于整个过程:

git clone --mirror [email protected]:org/my_bitbucket_repository.git

cd my_bitbucket_repository.git

git remote set-url origin [email protected]:org/my_github_repository.git

git push --mirror

然后,您可以通过以下方式验证这是否确实更改了遥控器:

git remote show origin

它将输出类似于以下内容的内容:

Fetch URL: [email protected]:org/my_github_repository.git
  Push  URL: [email protected]:org/my_github_repository.git
  HEAD branch: main
  Remote branches:
    main    tracked
  Local refs will be mirrored by 'git push'

相关问题