git push to multiple repositories simultaneously
This question already has an answer here:
I don't think you can do it just by setting a flag on git, but you can modify a config file that will allow you to push to multiple remote repositories without manually typing them all in (well only typing them in the first time and not after)
In the .git/config
file you can add multiple urls to a defined remote:
[remote "all"]
url=ssh://user@server/repos/g0.git
url=ssh://user@server/repos/g1.git
If you git push all
now you push to all the remote urls.
No manual editing
You can add multiple URL to a remote branch (eg all
) directly from command line by using git config --add remote.xyz.url
with differents URL:
git config --add remote.all.url ssh://user@server/repos/g0.git
git config --add remote.all.url ssh://user@server/repos/g1.git
Fully automatic
If you're super lazy and don't bear to copy/paster URL several times, this is for you:
function git-add-push-all() {
while read -r name url method; do
git config --add remote.all.url "$url"
done < <(git remote -v | awk '!/^all/ && /push/')
}
git-add-push-all # from git (sub)directory
A full bashy script is possible (test $name
and $method
), but awk
is sweet and there is love for everyone.
Push
Then you can push to all remote with
git push all
References
You can also get url from configured remotes :
for repo in g0 g1 ...
do
git config --add remote.all.url `git config remote.$repo.url`
done
where g0, g1, ... are the names of your remotes.
链接地址: http://www.djcxy.com/p/49766.html上一篇: git多个远程起源
下一篇: git同时推送到多个存储库