Sinkronisasi dua repository GitHub berguna ketika Anda ingin menduplikasi, mencadangkan, atau menyamakan isi antara dua repositori yang berbeda. Berikut adalah beberapa metode populer untuk melakukannya:
1. Sinkronisasi Manual dengan Git Remote
Metode ini cocok jika Anda ingin mengelola sinkronisasi secara manual melalui terminal.
Langkah-langkah:
- Clone repository pertama (misalnya
repo-a
):git clone https://github.com/user/repo-a.git cd repo-a
- Tambahkan repository kedua (
repo-b
) sebagai remote:git remote add secondary https://github.com/user/repo-b.git
- Verifikasi remote:
git remote -v
- Tarik perubahan terbaru dari
repo-a
:git pull origin main
- Dorong ke
repo-b
:git push secondary main
2. Sinkronisasi Otomatis dengan GitHub Actions
Jika Anda ingin sinkronisasi otomatis setiap kali ada push, gunakan GitHub Actions.
Langkah-langkah:
- Buat token akses pribadi (PAT) dan tambahkan ke
repo-a
sebagai Secret dengan nama REPO_B_PAT. - Buat file
.github/workflows/sync.yml
direpo-a
:
name: Sync to Repo B
on:
push:
branches:
- main
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Push to Repo B
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "[email protected]"
git remote add secondary https://github.com/user/repo-b.git
git fetch secondary
git push secondary main --force
env:
GITHUB_TOKEN: ${{ secrets.REPO_B_PAT }}
Setiap kali ada perubahan di repo-a
, maka secara otomatis akan disinkronkan ke repo-b
.
3. Menggunakan Git Mirror
Metode ini cocok untuk menduplikasi seluruh isi repository termasuk branch dan tag.
Langkah-langkah:
git clone --mirror https://github.com/user/repo-a.git
cd repo-a.git
git remote set-url --push origin https://github.com/user/repo-b.git
git push --mirror
Anda dapat menjadwalkan ulang perintah di atas secara berkala menggunakan cron job atau GitHub Actions.
Kesimpulan
Sinkronisasi repository bisa dilakukan dengan:
- Manual (remote): Jika ingin fleksibilitas dan kontrol langsung.
- GitHub Actions: Jika ingin otomatisasi setiap kali ada perubahan.
- Mirror: Jika ingin duplikasi penuh termasuk branch dan tag.
Pilih metode yang sesuai dengan kebutuhan Anda, baik untuk backup, kolaborasi, maupun publikasi kode.
Ditulis oleh: Tim Cembeliq Teknologi Persada