HowTo: Push to multiple GIT repos with one command
So, now that I have http://git.troglobit.com setup as a backup GIT repo
to https://github.com/troglobit, I needed a simple way to always push
to both repos – best way for me is to always hook into my regular work
flow, otherwise I’d just forget. The git-remote(1) man page to the
rescue, it describes the set-url --add
sub-command:
git remote set-url --add origin ssh://git.troglobit.com:1234/srv/git/watchdogd.git
Now, with a simple git push
followed by git push --tags
I had now
pushed to both the GitHub repo as well as my own server!
Obviously I don’t use port 1234, but that’s the syntax if you want to push to a GIT server over SSH on a different port than the default (22).
You can of course just edit the .git/config
file instead, which in
many cases might be faster:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:troglobit/finit.git
url = ssh://git.troglobit.com:1234/srv/git/finit.git
Of course I first had to create the empty watchdogd.git
on the server.
I do this quite often, so I’ve wrapped it in a makerepo.sh
script:
cd /srv/git
git init --bare watchdogd.git
echo "Refurbished watchdog daemon from uClinux-dist" >watchdogd.git/description
To inspect your current push/pull repos, issue git remote -v
:
origin git@github.com:troglobit/watchdogd.git (fetch)
origin git@github.com:troglobit/watchdogd.git (push)
origin ssh://git.troglobit.com:1234/srv/git/watchdogd.git (push)