How can I make git push
to push not only to origin
but also another remote repository?
as git push
is only an alias for git push origin
, can I alias git push to push to 2 remote repositories at once (with just that one command)?
I’m not looking for a non-git script here but would like to set this up for my local repository in git.
When I tried it with post-push scripts I failed.
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.
You can add multiple URLs to a remote branch (e.g. all
) directly from command line by using git config --add remote.xyz.url
with different URLs:
git config --add remote.all.url ssh://user@server/repos/g0.git
git config --add remote.all.url ssh://user@server/repos/g1.git
If you're super lazy and don't want to copy/paste URLs 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.
Then you can push to all remote with
git push all
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With