Let’s pretend you have a project on Gitlab called ask-izzy
and you want to mirror it up to Gitlab which is located at https://github.com/ask-izzy/ask-izzy
Assuming you’re running Gitlab as the default user of git
and that your repositories are stored in /mnt/repositories
you can following something similar to the following instructions:
- Grant write access to Github
Get your Gitlab install’s pubkey from the git user
cat /home/git/.ssh/id_rsa.pub
On Github add this pubkey as deploy key on the repo, make sure you tick the option to allow write access.
- Add a post-receive hook to the Gitlab project
mkdir /mnt/repositories/developers/ask-izzy.git/custom_hooks/
echo "exec git push --quiet github &" > \
/mnt/repositories/developers/ask-izzy.git/custom_hooks/post-receive
chown -R git:git /mnt/repositories/developers/ask-izzy.git/custom_hooks
chmod +x /mnt/repositories/developers/ask-izzy.git/custom_hooks/post-receive
- Add Github as a remote to the Gitlab project
cd /mnt/repositories/developers/ask-izzy.git
vi config
and add in the Github remote:
[remote "github"]
url = [email protected]:ask-izzy/ask-izzy.git
fetch = +refs/*:refs/*
mirror = true