Belajar Git - Kolaborasi Remote (Fetch, Pull, Push & Sync)
Episode 9 of 21

Belajar Git - Kolaborasi Remote (Fetch, Pull, Push & Sync)

Menguasai sinkronisasi saat berkolaborasi dalam tim: membedakan git fetch dan git pull, menjaga sejarah tetap rapi dengan git pull --rebase, melihat branch remote, dan menghapus branch di remote menggunakan git push origin --delete.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 8 kalian berhasil membawa repository lokal ke GitHub dan melakukan push pertama. Namun cerita kolaborasi sesungguhnya baru dimulai: saat beberapa developer mengerjakan project yang sama, repository lokal dan remote akan saling menjauh. Kalian mengerjakan fitur A, rekan kalian mengerjakan fitur B — lalu keduanya harus kembali selaras.

Episode ini membekali kalian empat senjata sinkronisasi: git fetch, git pull, git push, dan git pull --rebase. Dikuasai dengan benar, semua orang bisa bekerja paralel tanpa saling menimpa.

Dua Sumber Kebenaran

Sejak episode 8, repository kalian punya dua pandangan yang berjalan sendiri-sendiri: lokal dan remote. Git tidak menyinkronkannya otomatis — setiap langkah sinkron adalah perintah eksplisit. Inilah kenapa muncul istilah "behind" (tertinggal) dan "ahead" (mendahului) saat memeriksa status.

Status relatif terhadap remote
git status

Output semacam "Your branch is behind 'origin/main' by 2 commits" memberi tahu bahwa remote punya 2 commit yang belum kalian miliki. Bagaimana menariknya? Dua cara: fetch dan pull.

git fetch: Menarik Tanpa Menggabung

git fetch origin mengambil riwayat commit terbaru dari remote ke referensi remote lokal (origin/main), tapi sama sekali tidak menyentuh branch kerja atau working directory kalian. Ini seperti mengunduh kabar terbaru tanpa mengubah hidup kalian sedikit pun.

Menarik data tanpa menggabung
git fetch origin

Setelah fetch, kalian bisa membandingkan dulu: git log --oneline main..origin/main menampilkan commit yang hanya ada di remote. Baru setelah yakin, lakukan penggabungan manual.

Tip

git fetch adalah gerakan aman yang tidak pernah mengubah working directory. Saat tidak yakin kondisi remote, jalankan fetch dulu lalu amati perbedaannya — kebiasaan ini menyelamatkan dari banyak kejutan.

git pull: Fetch + Merge

git pull origin main adalah pintasan: fetch dulu, lalu merge. Ia mengambil commit remote dan langsung menggabungkannya ke branch lokal yang aktif. Dalam banyak kasus ini yang kalian butuhkan, dengan satu perhatian: merge otomatis bisa menghasilkan commit ekstra.

Menarik dan menggabungkan sekaligus
git pull origin main

Karena pull adalah fetch + merge, jika perubahan di dua sisi bersinggungan, kalian bisa menemui konflik — teknik penyelesaiannya persis seperti episode 7.

git pull --rebase: Sejarah Tetap Linear

Masalah kecil dari git pull biasa: bila kalian punya commit lokal dan remote juga punya commit baru, Git menciptakan merge commit setiap sinkronisasi. Dalam tim yang sering push, sejarah jadi penuh "simpul" merge yang berisik.

Solusi modern: git pull --rebase origin main. Perintah ini menarik commit remote, lalu menerapkan commit lokal di atasnya — hasilnya sejarah linear seolah semua perubahan berjalan berurutan.

Pull dengan rebase untuk sejarah rapi
git pull --rebase origin main

Warning

Rebase hanya menulis ulang commit lokal yang belum dipublish. Selama belum ada orang lain yang menarik commit kalian, git pull --rebase aman dan menjadi standar tim modern. Setelah berhasil, lanjutkan dengan git push biasa.

Setelah upstream terdaftar (episode 8), perintah cukup git pull --rebase tanpa menyebut origin main.

Melihat Branch Remote

Branch di remote tercatat di Git sebagai origin/nama-branch. Untuk memetakannya:

Melihat branch remote
git branch -r
Output git branch -r
  origin/main
  origin/fitur-rebrand

git branch -r menampilkan hanya branch remote; git branch -a (all) menampilkan branch lokal dan remote sekaligus, dengan referensi remote ditandai remotes/origin/....

Referensi seperti origin/main disebut remote-tracking branch: versi lokal dari kondisi remote terakhir kali kalian fetch. Itulah kenapa ia tidak otomatis terkini — perbarui kapan saja dengan git fetch origin.

Menghapus Branch di Remote

Seperti branch lokal yang dihapus setelah di-merge, branch di remote juga perlu dibersihkan. Cara modernnya adalah mengirim perintah hapus lewat push:

Menghapus branch di remote
git push origin --delete fitur-rebrand

git push origin --delete <nama-branch> menghapus branch tersebut di remote sekaligus menyingkirkan referensi origin/fitur-rebrand dari repository lokal. Setelah itu, cabut pula branch lokalnya dengan git branch -d fitur-rebrand jika sudah tidak dipakai.

Note

GitHub otomatis menawarkan "Delete branch" setelah Pull Request di-merge. Namun dengan cara CLI ini kalian bisa membersihkan branch remote kapan saja — juga berguna untuk branch yang tidak pernah jadi di-merge.

Praktik Sinkronisasi Harian

Dikombinasikan, alur kerja harian yang rapi dan populer di tim modern adalah: ambil perubahan remote, rapikan commit lokal di atasnya, lalu kirim kembali.

Alur sinkronisasi harian
git fetch origin
git pull --rebase origin main
# kerjakan fitur, beberapa commit lokal
git push

Urutan ini memastikan kalian selalu bekerja di atas versi terbaru, menghindari merge commit berisik, dan mengirim perubahan hanya setelah sejarah lokal bersih. Ketika push ditolak karena remote bergerak lagi, cukup ulangi langkah git pull --rebase lalu git push — jangan memakai force push untuk menimpa kerja orang lain.

Warning

Jika git push ditolak dengan pesan "non-fast-forward", itu perlindungan Git. Jangan paksakan dengan --force. Sinkronkan dulu dengan git pull --rebase, baru push lagi.

Penutup

Poin kunci episode ini:

  • git fetch menarik riwayat tanpa menggabungkan; git pull adalah fetch plus merge.
  • git pull --rebase origin main menjaga sejarah tetap linear dengan menerapkan ulang commit lokal.
  • git branch -r dan git branch -a memetakan branch remote.
  • git push origin --delete <nama-branch> menghapus branch dari remote.

Sekarang kalian bisa sinkron dengan tim. Di episode 10, kumpulan perintah ini kita susun menjadi aturan main: empat Git collaboration workflows — dari Centralized, Feature Branch, Gitflow, hingga Trunk-Based Development yang menjadi favorit era CI/CD modern. Sampai jumpa!