将整个远程 git 存储库推送到另一个远程
Push entire remote git repository to another remote
我将我的项目从错误的项目中分叉出来(我分叉了一个分叉)并且我想重置我的 GitHub 存储库以从原始项目中分叉出来。在 GitHub 中移动分叉涉及删除和重新分叉 AFAIK。唯一的问题是我想在不创建本地分支的情况下将我的旧远程分支引用推送到新分支,因为(为了争论起见)我有 100 个不同的分支,检查新的本地版本会花费太多时间每个远程分支。 (我的本地分支列表非常精简,但我通常将修复分支放在 GitHub 上)。
您可以在 git push
(第 4 步)中使用右 refspec
来实现此目的:
- 通过重命名远程将远程跟踪引用
refs/remotes/origin/...
重命名为 refs/remotes/oldfork/...
:git remote rename origin oldfork
- 在 GitHub
删除并重新 fork 回购协议
- 重新添加
origin
远程:git remote add origin <url>
- 将旧分支推送到新分支:
git push origin 'refs/remotes/oldfork/*:refs/heads/*'
- 删除
oldfork
远程:git remote remove oldfork
如果您在原始分支中有自己的标签,请将 --tags
添加到 git push
命令行。
我将我的项目从错误的项目中分叉出来(我分叉了一个分叉)并且我想重置我的 GitHub 存储库以从原始项目中分叉出来。在 GitHub 中移动分叉涉及删除和重新分叉 AFAIK。唯一的问题是我想在不创建本地分支的情况下将我的旧远程分支引用推送到新分支,因为(为了争论起见)我有 100 个不同的分支,检查新的本地版本会花费太多时间每个远程分支。 (我的本地分支列表非常精简,但我通常将修复分支放在 GitHub 上)。
您可以在 git push
(第 4 步)中使用右 refspec
来实现此目的:
- 通过重命名远程将远程跟踪引用
refs/remotes/origin/...
重命名为refs/remotes/oldfork/...
:git remote rename origin oldfork
- 在 GitHub 删除并重新 fork 回购协议
- 重新添加
origin
远程:git remote add origin <url>
- 将旧分支推送到新分支:
git push origin 'refs/remotes/oldfork/*:refs/heads/*'
- 删除
oldfork
远程:git remote remove oldfork
如果您在原始分支中有自己的标签,请将 --tags
添加到 git push
命令行。