将代码推送到两个遥控器
这个问题在这里已经有了答案:
  在最近的Git版本中,您可以为给定的远程添加多个pushurl 。  使用以下内容将两个pushurl添加到您的origin : 
git remote set-url --add --push origin git://original/repo.git
git remote set-url --add --push origin git://another/repo.git
  所以当你推动origin ,它会推到两个仓库。 
  更新1:Git的1.8.0.1和1.8.1(可能还有其他版本)似乎有导致错误--add代替原来的URL你使用它的第一次,所以你需要使用重新添加原始URL相同的命令。  做git remote -v应该会显示每个远程的当前URL。 
  更新2: Git维护者Junio C. Hamano解释了它是如何设计的。  做git remote set-url --add --push <remote_name> <url>为给定的远程添加一个pushurl ,它将覆盖默认的推送URL。  但是,您可以为给定的遥控器添加多个pushurl ,然后允许您使用单个git push推送到多个遥控器。  您可以在下面验证此行为: 
$ git clone git://original/repo.git
$ git remote -v
origin  git://original/repo.git (fetch)
origin  git://original/repo.git (push)
$ git config -l | grep '^remote.'
remote.origin.url=git://original/repo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
  现在,如果您想使用单个命令推送到两个或更多存储库,您可以创建一个名为all的新远程(如@Adam Nelson在注释中所建议的),或者继续使用origin ,尽管后一个名称不太容易描述这个目的。  如果您仍想使用origin ,请跳过以下步骤,并在所有其他步骤中使用origin而不是all origin 。 
  因此,让我们添加一个新的远程呼吁all推来推去多个库时,我们将在后面参考: 
$ git remote add all git://original/repo.git
$ git remote -v
all git://original/repo.git (fetch)               <-- ADDED
all git://original/repo.git (push)                <-- ADDED
origin  git://original/repo.git (fetch)
origin  git://original/repo.git (push)
$ git config -l | grep '^remote.all'
remote.all.url=git://original/repo.git            <-- ADDED
remote.all.fetch=+refs/heads/*:refs/remotes/all/* <-- ADDED
  然后,让我们将pushurl添加到all远程,指向另一个存储库: 
$ git remote set-url --add --push all git://another/repo.git
$ git remote -v
all git://original/repo.git (fetch)
all git://another/repo.git (push)                 <-- CHANGED
origin  git://original/repo.git (fetch)
origin  git://original/repo.git (push)
$ git config -l | grep '^remote.all'
remote.all.url=git://original/repo.git
remote.all.fetch=+refs/heads/*:refs/remotes/all/*
remote.all.pushurl=git://another/repo.git         <-- ADDED
  这里git remote -v显示push的新pushurl ,所以如果你做git push all master ,它会将master分支推到git://another/repo.git 。  这显示了pushurl如何覆盖默认的url(remote.all.url)。 
  现在让我们添加另一个指向原始存储库的pushurl : 
$ git remote set-url --add --push all git://original/repo.git
$ git remote -v
all git://original/repo.git (fetch)
all git://another/repo.git (push)
all git://original/repo.git (push)                <-- ADDED
origin  git://original/repo.git (fetch)
origin  git://original/repo.git (push)
$ git config -l | grep '^remote.all'
remote.all.url=git://original/repo.git
remote.all.fetch=+refs/heads/*:refs/remotes/all/*
remote.all.pushurl=git://another/repo.git
remote.all.pushurl=git://original/repo.git        <-- ADDED
  你看到我们添加的两个pushurl都被保留。  现在,单个git push all master会将master分支推送到git://another/repo.git和git://original/repo.git 。 
要用一个命令发送到两个远程,您可以为它创建一个别名:
git config alias.pushall '!git push origin devel && git push github devel'
  有了这个,当你使用命令git pushall ,它将更新这两个存储库。 
