Cara Sinkronisasi Dua Repository GitHub

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:

  1. Clone repository pertama (misalnya repo-a):
    git clone https://github.com/user/repo-a.git
    cd repo-a
  2. Tambahkan repository kedua (repo-b) sebagai remote:
    git remote add secondary https://github.com/user/repo-b.git
  3. Verifikasi remote:
    git remote -v
  4. Tarik perubahan terbaru dari repo-a:
    git pull origin main
  5. 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:

  1. Buat token akses pribadi (PAT) dan tambahkan ke repo-a sebagai Secret dengan nama REPO_B_PAT.
  2. Buat file .github/workflows/sync.yml di repo-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

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

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