将所有本地分支推送到Git中的其他远程控制器

时间:2014-01-19 21:16:59

标签: git

我这样取origin

git fetch origin

这会将所有分支设为masterdev

然后我将它推到另一个远程mirror-server

git push mirror-server master

或者,基本上是git push --all mirror-server

但是这不会将我的dev分支推送到mirror-server,只会推送master分支。

我得到错误:

error: src refspec dev does not match any.

如图所示我尝试过:

git push -u mirror-server dev
git push --all

我也试过切换curent branch然后推。没运气!只有一次我得到的东西是这样的:Git基本上将dev上的所有文件都放到master并合并文件......

基本上我需要从origin提取更改,然后将所有分支推送到所有其他遥控器。

1 个答案:

答案 0 :(得分:2)

此命令序列将您的GitHub存储库(或任何其他存储库,如果您更改URL)克隆到~/local-repos,初始化~/remote-repos.git中的空存储库并从~/local-repos推送到{{ 1}}所有分支。

~/remote-repos.git

稍后,您在git clone 'https://github.com/nhnc-nginx/apache2nginx' ~/local-repos git init --bare ~/remote-repos.git cd ~/local-repos git remote add mirror-server ~/remote-repos.git git push --mirror mirror-server 内更新跟踪分支(并获取新分支),并在~/local-repos内执行git fetch origin。您可以使用git push --mirror mirror-server再次将所有内容镜像到~/local-repos。如果您想推送单个分支(例如~/remote-repos.git),请使用origin/gh-pages

请注意,git push mirror-server origin/gh-pages remote自动命名为https://github.com/nhnc-nginx/apache2nginxorigingit fetch origin存储库中获取可访问的对象,并将分支存储为跟踪分支。跟踪分支以远程名称为前缀(在本例中为origin)。如果您执行origin并且不存在git checkout gh-pages分支,Git会在执行结帐之前执行gh-pages,这将创建git branch --track gh-pages origin/gh-pages分支,其上游设置为gh-pages。< / p>

这可能是您Git报告的错误的根源。您刚刚抓取origin/gh-pages并尝试推送不存在的origin/gh-pages分支。作为结帐的一部分,gh-pages已创建,因此请继续工作。

另请注意,您正在创建本地存储库的镜像,而不是gh-pages。如果要镜像GitHub存储库,则应使用origin在刚刚创建的空镜像中执行git fetch origin