I self-host my own git repositories. I also use github as a backup for many of them. I have a use case for a number of them where the data changes can be quite large and pushing to both my own and github's remote services doubles my bandwidth usage in my mostly bandwidth contrained environments.
To get around those contraints, I wanted to only push to my git repository and have that service then push to github. This is how I went about it, courtesy of Matt Palmer
It's likely you have not used your remote server to connect to github. To make sure everything happens smoothly, you need to:
In the bare git repository on your server, you need to add the remote configuration. On a Debian server using gitweb, this file would be located as /var/cache/git/MYREPO/config. Add the below lines to it:
[remote "github"]
url = git@github.com:MYACCOUNT/MYREPO.git
fetch = +refs/heads/*:refs/remotes/github/*
autopush = true
Now we need to create a post-receive hook to process the push to github. Going with the previous example, edit /var/cache/git/MYREPO/hooks/post-receive
#!/bin/bash
for remote in $(git remote); do
if [ "$(git config "remote.${remote}.autopush")" = "true" ]; then
git push "$remote"
fi
done
Happy automated pushing to github.