在git中,我可以用一个命令推送到多个存储库吗?

在git中,我可以用一个命令推送到多个存储库吗?,git,version-control,Git,Version Control,基本上,我想做一些类似于git的事情,将mybranch推到repo1、repo2、repo3 现在我只需输入push多次,如果我急于完成推送,我只需将它们全部发送到后台git push repo1&git push repo2& 我只是想知道git是否本机支持我想要做的事情,或者是否有一个聪明的脚本,或者是否有一种编辑本地repo配置文件的方法,可以说一个分支应该被推送到多个远程位置。我要做的是在我推送到的主目录中有一个单独的裸存储库。然后,存储库中的更新后钩子将或rsync推送到其他几个公共

基本上,我想做一些类似于
git的事情,将mybranch推到repo1、repo2、repo3

现在我只需输入push多次,如果我急于完成推送,我只需将它们全部发送到后台
git push repo1&git push repo2&


我只是想知道git是否本机支持我想要做的事情,或者是否有一个聪明的脚本,或者是否有一种编辑本地repo配置文件的方法,可以说一个分支应该被推送到多个远程位置。

我要做的是在我推送到的主目录中有一个单独的裸存储库。然后,存储库中的更新后钩子将或rsync推送到其他几个公共可见的位置

以下是我的hooks/post更新:

#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, make this file executable by "chmod +x post-update".

# Update static info that will be used by git clients accessing
# the git directory over HTTP rather than the git protocol.
git-update-server-info

# Copy git repository files to my web server for HTTP serving.
rsync -av --delete -e ssh /home/afranco/repositories/public/ afranco@slug.middlebury.edu:/srv/www/htdocs/git/

# Upload to github
git-push --mirror github 

在git中,每个远程可以有几个URL,即使
git remote
命令似乎没有公开我上次检查的URL。在
.git/config
中,放置如下内容:

[remote "public"]
    url = git@github.com:kch/inheritable_templates.git
    url = kch@homeserver:projects/inheritable_templates.git

现在你可以说“
gitpushpublic
”来同时推送两个回购协议。

这很好。是否要共享或解释git update server信息?正如我在回答中所添加的:git update server信息写入一些静态信息文件,这些文件将由通过HTTP而不是git协议访问git目录的git客户端使用。有关更多信息,请参见以下内容:好提示。注意,这仅适用于推送。对于fetch,它似乎只使用第一个url条目。您似乎还可以将此多远程服务器上的分支作为目标。因此,如果您在配置中添加类似的内容,您可以不使用远程名称直接执行“git pull”
[branch“master”]remote=public
谢谢,挽救了我的生命!