git - git push 是否支持多个ssh遥控器?

  显示原文与译文双语对照的内容

我需要通过ssh推送到多个远程端口。 以下是我的设置:


$ git remote -v
stage ssh://me@host1.xxxxxx.com:/home/me/gitserve (fetch)
stage ssh://me@host2.xxxxxx.com:/home/me/gitserve (push)
stage ssh://me@host1.xxxxxx.com:/home/me/gitserve (push)

$ git config -l
user.name=kevin
user.email=xxxx
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.stage.url=ssh://me@host1.xxxxxx.com:/home/me/gitserve
remote.stage.fetch=+refs/heads/*:refs/remotes/stage/*
remote.stage.pushurl=ssh://me@host2.xxxxxx.com:/home/me/gitserve
remote.stage.pushurl=ssh://me@host1.xxxxxx.com:/home/me/gitserve

但是当我推时,git只推到我的第二个主机,而不是第一个主机:


$ git push stage master
Counting objects: 3, done.
Writing objects: 100% (3/3), 251 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://me@host2.xxxxxx.com:/home/me/gitserve
 8963c70..9619fdb master -> master
Everything up-to-date

git只允许通过SSH实现一个推送远程? 我已经看到了示例,这样可以向"git://" 模式执行多次推送,但是不确定是否可以使用多个 to 。

时间: 作者:

重定义 remote.stage.pushurl 将重写原始值。

如果要推送到不同的遥控器,请用不同的名称定义它们:


 remote.stage2.pushurl=ssh://me@host2.xxxxxx.com:/home/me/gitserve
 remote.stage1.pushurl=ssh://me@host1.xxxxxx.com:/home/me/gitserve

然后推:


git push stage1 master
git push stage2 master

作者:
...