tutorial, git,

GitHub Remote: Menghubungkan Repository Lokal ke GitHub dengan Push, Pull, dan Fetch

Kiki/🎮🍉⌨️🍩💻 Kiki/🎮🍉⌨️🍩💻 Sep 18, 2026 · 6 mins read
GitHub Remote: Menghubungkan Repository Lokal ke GitHub dengan Push, Pull, dan Fetch
Share this

Selama ini kita bekerja di repository lokal — semua ada di komputer sendiri. Sekarang saatnya terhubung ke dunia luar. Remote repository adalah versi repository yang tersimpan di server (GitHub, GitLab, dsb.) yang bisa diakses oleh siapapun yang punya izin. Di sinilah kolaborasi tim terjadi.


Konsep Remote

Remote adalah alias untuk URL repository di server. Secara konvensi, remote utama dinamai origin — ini bukan nama khusus Git, hanya konvensi yang sangat umum dipakai.

Lokal (komputer kamu)          Remote (GitHub)
┌─────────────────────┐        ┌─────────────────────┐
│  main               │──────→ │  origin/main        │
│  feature/login      │        │  origin/develop     │
│                     │←────── │                     │
└─────────────────────┘        └─────────────────────┘
     git push/pull/fetch

Menghubungkan Repository Lokal ke GitHub

Cara 1: Buat Repository Baru di GitHub, Lalu Hubungkan

# Sudah ada repo lokal
cd proyek-ku

# Tambahkan remote (URL dari GitHub)
git remote add origin https://github.com/username/proyek-ku.git
# Atau dengan SSH (jika sudah setup SSH key)
git remote add origin git@github.com:username/proyek-ku.git

# Push pertama kali dan set upstream
git push -u origin main

Flag -u (atau --set-upstream) menghubungkan branch lokal main ke origin/main. Setelah ini cukup git push tanpa argumen.

Cara 2: Clone Repository yang Sudah Ada di GitHub

# Clone repository (unduh + setup remote otomatis)
git clone https://github.com/username/proyek-ku.git

# Clone ke folder dengan nama berbeda
git clone https://github.com/username/proyek-ku.git nama-folder-lokal

# Clone branch tertentu saja
git clone -b develop https://github.com/username/proyek-ku.git

git clone otomatis:

  • Mengunduh seluruh repository
  • Membuat folder dengan nama repo
  • Menambahkan remote bernama origin
  • Checkout ke default branch

Mengelola Remote

# Lihat daftar remote
git remote
# origin

# Lihat detail URL remote
git remote -v
# origin  git@github.com:username/proyek-ku.git (fetch)
# origin  git@github.com:username/proyek-ku.git (push)

# Tambah remote lain (berguna untuk fork workflow)
git remote add upstream https://github.com/original/proyek-ku.git

# Ubah URL remote (misal pindah dari HTTPS ke SSH)
git remote set-url origin git@github.com:username/proyek-ku.git

# Hapus remote
git remote remove upstream

# Ganti nama remote
git remote rename origin github

git push — Kirim Commit ke Remote

# Push branch saat ini ke upstream yang sudah di-set
git push

# Push branch tertentu ke remote
git push origin main
git push origin feature/login

# Push dan set upstream sekaligus
git push -u origin feature/login

# Push semua branch lokal
git push --all origin

# Push tag
git push origin v1.0.0
git push origin --tags

# Force push (BERBAHAYA — lihat peringatan di bawah)
git push --force-with-lease origin feature/login

Peringatan Force Push

git push --force menimpa histori remote. Jangan pernah force push ke branch yang di-share (main, develop). Gunakan --force-with-lease yang lebih aman — hanya force push jika tidak ada yang push setelah kamu pull terakhir.


git fetch — Unduh Update Tanpa Merge

git fetch mengambil semua update dari remote ke lokal tanpa mengubah working directory atau branch lokal. Data tersimpan di remote tracking branches (origin/main, origin/feature/login).

# Fetch semua perubahan dari origin
git fetch origin

# Fetch dari semua remote
git fetch --all

# Fetch branch tertentu
git fetch origin main

# Fetch dan hapus remote tracking branch yang sudah dihapus di remote
git fetch --prune
git fetch -p

Setelah fetch, kamu bisa review sebelum merge:

# Lihat commit di remote yang belum ada di lokal
git log HEAD..origin/main --oneline

# Lihat diff antara lokal dan remote
git diff HEAD origin/main

git pull — Fetch + Merge Sekaligus

git pull adalah shortcut dari git fetch diikuti git merge (atau git rebase jika dikonfigurasi).

# Pull branch saat ini dari upstream
git pull

# Pull branch tertentu dari remote
git pull origin main

# Pull dengan rebase (histori lebih bersih)
git pull --rebase origin main

# Pull tapi jangan merge — hanya fetch
git fetch && git log HEAD..origin/main --oneline

git fetch vs git pull

  git fetch git pull
Mengubah working directory Tidak Ya
Aman dilakukan kapan saja Ya Bisa ada konflik
Bisa review sebelum merge Ya Tidak
Cocok untuk Melihat update remote Update cepat

Banyak developer berpengalaman lebih suka git fetch + review + manual merge daripada langsung git pull.


Remote Tracking Branches

Saat fetch/clone, Git menyimpan kondisi terakhir remote di remote tracking branches (format: remote/branch):

# Lihat semua remote tracking branches
git branch -r
# origin/main
# origin/develop
# origin/feature/login

# Lihat branch lokal dan remote tracking-nya
git branch -vv
# * main           a1b2c3d [origin/main] feat: tambah halaman utama
#   feature/login  b2c3d4e [origin/feature/login: ahead 2] wip: login

# "ahead 2" berarti lokal 2 commit lebih maju dari remote
# "behind 3" berarti remote 3 commit lebih maju dari lokal

Workflow Harian dengan Remote

# Pagi hari: update local dari remote
git fetch origin
git log HEAD..origin/main --oneline  # review update
git merge origin/main                # atau git pull

# Kerjakan fitur
git switch -c feature/search
# ... edit, add, commit ...

# Push branch ke remote (untuk backup dan PR)
git push -u origin feature/search

# Sinkronkan dengan main secara berkala
git fetch origin
git rebase origin/main   # atau merge

# Push update terbaru
git push

Kesimpulan

Remote repository adalah jembatan antara pekerjaan lokal dan kolaborasi tim. Dengan memahami perbedaan antara fetch, pull, dan push, kamu bisa mengontrol kapan dan bagaimana perubahan mengalir antara lokal dan remote.

Di artikel berikutnya, kita bahas GitHub secara mendalam — fitur-fitur penting GitHub yang membuat kolaborasi tim menjadi sangat produktif.

Kiki/🎮🍉⌨️🍩💻
Written by Kiki/🎮🍉⌨️🍩💻
hello I'm friend K.