将所有远程跟踪分支推送到新远程?

时间:2014-02-15 15:41:14

标签: git

我已经克隆了我的仓库,并希望将我的所有远程分支(origin / *)推送到我配置的新远程。我试过了:

git push anotherRemote --all

但它只会推送我制作本地副本的那些。当我输入:

git branch -r

我看到所有分支都位于我的另一个遥控器上(我没有创建本地副本)。如何将这些内容推送到anotherRemote

2 个答案:

答案 0 :(得分:3)

只需明确指定要推送的位置:

git push anotherRemote refs/remotes/origin/*:refs/heads/*

这将占用所有远程原始分支,并将它们作为普通分支推送到另一个远程分支上。 (使用git fetch anotherRemote; git branch -rv验证。)

谨防--mirror选项,除非真的了解它的作用!

答案 1 :(得分:0)

使用--mirror选项git push。来自the documentation

  

指定refs/下的所有引用(包括但不限于refs/heads/refs/remotes/refs/tags/),而不是将每个引用命名为push。到远程存储库。新创建的本地引用将被推送到远程端,本地更新的引​​用将在远程端强制更新,并且已删除的引用将从远程端删除。如果设置了配置选项remote.<remote>.mirror,则这是默认值。

另见How to make a GitHub mirror to Bitbucket?