将整个远程 git 存储库推送到另一个远程

Push entire remote git repository to another remote

我将我的项目从错误的项目中分叉出来(我分叉了一个分叉)并且我想重置我的 GitHub 存储库以从原始项目中分叉出来。在 GitHub 中移动分叉涉及删除和重新分叉 AFAIK。唯一的问题是我想在不创建本地分支的情况下将我的旧远程分支引用推送到新分支,因为(为了争论起见)我有 100 个不同的分支,检查新的本地版本会花费太多时间每个远程分支。 (我的本地分支列表非常精简,但我通常将修复分支放在 GitHub 上)。

您可以在 git push(第 4 步)中使用右 refspec 来实现此目的:

  1. 通过重命名远程将远程跟踪引用 refs/remotes/origin/... 重命名为 refs/remotes/oldfork/...git remote rename origin oldfork
  2. 在 GitHub
  3. 删除并重新 fork 回购协议
  4. 重新添加 origin 远程:git remote add origin <url>
  5. 将旧分支推送到新分支:git push origin 'refs/remotes/oldfork/*:refs/heads/*'
  6. 删除 oldfork 远程:git remote remove oldfork

如果您在原始分支中有自己的标签,请将 --tags 添加到 git push 命令行。