2015-10-27 211 views
0

我把我的项目从错误的项目中分出来了(叉叉),我想重置我的GitHub仓库以分离原始项目。在GitHub中移动分支涉及删除和重新AFAIK。唯一的问题是我想将我的旧的远程分支引用推向新的分支,而没有创建本地分支,因为(为了争论起见)我有100个不同的分支,并且需要太多时间来检查新的本地版本每个远程分支。 (我的本地分支清单非常精简,但我通常在GitHub上留下修补分支)。将整个远程git存储库推送到另一个远程

+1

我不完全理解这个问题,但是您是否试过添加一个新的远程('git remote add $ name $ url'),然后运行'git push --all'(或'--mirror')? – Whymarrh

+0

如果我做git分支-a我会在本地看到1或2个分支,然后有100个分支说/ remotes/repoA/branchName,我希望它们在branchB中显示为/ remotes/repoB/branchName,而不必创建本地分支和做推--all – BunnyStrider

+1

我认为'--mirror'就是你要找的。使用镜像标志将磁盘上的存储库克隆到新位置,将新的远程磁盘添加到它,然后用镜像标志将其推送到新的远程计算机。 – Whymarrh

回答

1

可以使用右refspecgit push(步骤4)实现这一点:

  1. 通过重命名远程重命名远程跟踪引用refs/remotes/origin/...refs/remotes/oldfork/...git remote rename origin oldfork
  2. 删除并重新叉回购由GitHub
  3. 重新添加origin远程:git remote add origin <url>
  4. 推老枝新的叉:git push origin 'refs/remotes/oldfork/*:refs/heads/*'
  5. 删除oldfork远程:git remote remove oldfork

如果你在原来的叉了自己的标签,请加--tagsgit push命令行。

相关问题