我想将一个旧的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,我需要分别执行checkout
和git push upstream
。
我如何在没有checkout
的情况下将所有分支推送到Github?
4条答案
按热度按时间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。
zlhcx6iw2#
你可以通过使用这个命令来实现。
你可以在这里读到更多关于它的信息
ubbxdtey3#
首先确保您有fetched all branches。
然后push all branches to the new remote
91zkwejq4#
只是给任何偶然发现这一点的人一个提示,accepted answer只改变了
git push
的遥控器。因此,当你获取或拉取时,它仍然会引用BitBucket上的原始存储库。为了避免这种情况,只需在设置远程url时删除
--push
即可:对于整个过程:
然后,您可以通过以下方式验证这是否确实更改了遥控器:
它将输出类似于以下内容的内容: