Git:如何将丢失的分支从一个仓库推送到另一个仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git:如何将丢失的分支从一个仓库推送到另一个仓库相关的知识,希望对你有一定的参考价值。

我有一个Repo Repo1,我在Repo1有10个分支。我已经创建了一个新的Repo Repo2,我已将所有代码从Repo1推送到Repo2。但是我能够在Repo1中的10个分支中看到Repo2中只有6个分支。

我的Repo1遥控器是androidOld

我的遥控器Repo2是Android

Repo1的网址是https://github.com/XYZ/Repo1.git用于Repo2的网址是https://github.com/ABC/Repo2.git

我已经尝试了以下命令,看到其他SO链接:git push --all AndroidOld git push AndroidOld --mirror git push Android refs/remotes/AndroidOld/*:refs/heads/* 但没有什么工作,请让我知道如何将丢失的分支推送到新的回购

答案

这导致AndroidOld repo中只有6个本地分支。其他4个分支机构不会结账到本地AndroidOld仓库。

您可以通过git branch命令仔细检查,它会列出您推送到Android repo的6个分支。

要将其他4个分支(缺少的分支)推送到Android repo,您​​需要签出4个分支然后再次推送:

git checkout missing_branch1
git checkout missing_branch2
git checkout missing_branch3
git checkout missing_branch4
git push Android --mirror

然后10个分支将被推送到Android repo。

另一答案

1.确保您拥有所有“旧回购”分支和标签的本地副本。获取所有远程分支和标记:

git fetch origin

查看所有“旧回购”本地和远程分支机构:

git branch -a

如果某些遥控器/分支机构没有本地副本,则签出以创建缺失的本地副本:

git checkout -b <branch> origin/<branch>

现在我们必须在本地拥有所有远程分支。

2.添加“新repo”作为新的远程源:

git remote add new-origin git@github.com:user/repo.git

3.将所有本地分支和标记推送到“新仓库”。推送所有本地分支(注意我们正在推动新的原产地):

git push --all new-origin

推送所有标签:

git push --tags new-origin

4.删除“旧回购”源及其依赖项。查看现有的遥控器(你会看到2个遥控器,用于获取和推送)

git remote -v

删除“旧回购”远程:

git remote rm origin

将“new repo”遥控器重命名为“origin”:

git remote rename new-origin origin

以上是关于Git:如何将丢失的分支从一个仓库推送到另一个仓库的主要内容,如果未能解决你的问题,请参考以下文章

git怎么将本地仓库推送到一个新的远程分支包含所有历史提交信息

git本地分支推送到远程分支

git基础教程

Git 本地新建,删除分支并推送到远程仓库

git 一个分支完全覆盖另一个分支

如何在svn系统中使用git