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

Leave a comment

Your email address will not be published. Required fields are marked *