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

时间:2018-01-03 17:59:16

标签: android git github version-control repository

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

My Remote for Repo1为AndroidOld

My Remote for 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/* 但没有任何效果,请让我知道如何将缺失的分支推向新的Repo

2 个答案:

答案 0 :(得分:2)

这导致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 :(得分:0)

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

git fetch origin

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

git branch -a

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

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

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

2. :添加“新回购”作为新的远程来源:

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