Solusi untuk buat mirror dari repository Github dari Gitlab Community Edition (Gitlab CE) hanya tersedia untuk versi premium. Bila anda hanya ingin untuk membuat mirror semua repository bisa menggunakan fitur mirror dari git.
Full mirror seperti ini banyak digunakan untuk backup semua data yang ada di dalam repository, atau pun untuk sinkronisasi dari dua UI Git yang berbeda. Cara ini bisa dijalankan berbagai platform seperti Github, Gitea, Gitlab, Bitbucket dan lain sebagainya, karena fungsi yang akan kita gunakan adalah bawaan dari git itu sendiri.
Mirror Repository ke komputer
git clone --mirror https://github.com/twbs/bootstrap.git
Lalu cloning ke server Gitlab anda
cd bootstrap.git git push --mirror git@gitlab.jaranguda.com:jaranguda/bootstrap.git.git
sesimpel itu, tapi yang perlu di ingat ada beberapa kekurangan cara ini:
– hanya bisa untuk repository (issue, wiki tidak termasuk)
– perintah diatas harus dijalankan sendiri
kelebihannya adalah semua branch/commit ikut di clone.
Yang perlu diingat ini hanya meng-copy semua data saat script diatas dijalankan, untuk commit yang masuk kedepannya harus dibuat script terpisah. Sederhanyanya seperti ini
#!/usr/bin/env bash # script git-sync.sh # git clone hanya perlu satu kali git clone https://github.com/twbs/bootstrap.git bootstrap cd bootstrap git reset --hard origin/master git checkout master git pull # ganti url untuk push git remote set-url --push origin git@gitlab.jaranguda.com:jaranguda/bootstrap.git.git
cara ini juga harus dijalankan di tiap branch yang di-inginkan. Misalkan anda hanya ingin mencopy 3 branch, master, dev dan staging
#!/usr/bin/env bash # script git-sync.sh # git clone hanya perlu satu kali git clone https://github.com/twbs/bootstrap.git bootstrap cd bootstrap for branch in master dev staging; do git reset --hard origin/$branch git checkout $branch git pull # ganti url untuk push git remote set-url --push origin git@gitlab.jaranguda.com:jaranguda/bootstrap.git.git done
nah, gimana kalo mau ambil semua branch yang ada di Github? Cara pertama adalah tau dulu cara ambil branch yang ada di repository git
git branch -r # dan git branch -a
silahkan dibuat loopingnya