Kalau remote adalah alamat tempat kita bertukar commit, git remote adalah buku alamatnya. Kita sudah melihat dua pintu masuk ke buku alamat ini tanpa menyadarinya: git clone mengisi satu entri secara otomatis, dan git remote add mencantumkan entri baru secara manual. Pertanyaan yang kerap muncul di tengah kerja tim justru praktis: remote apa saja yang terdaftar di repository ini, alamatnya ke mana, dan bagaimana menata ulang daftar itu ketika server berpindah atau nama panggilan membingungkan? Chapter ini membahas git remote sebagai satu keluarga perintah untuk menjawab semuanya.
Membaca Daftar Remote #
Lab kita meniru pola chapter sebelumnya: repository pusat proyek-utama.git berisi dua commit milik Budi, dan Budi bekerja pada clone-nya. Dari dalam clone, daftar remote paling ringkas dibaca tanpa argumen apa pun:
git remoteOutput yang Dihasilkan:
originSatu baris, satu nama: origin. Perintah ini hanya menampilkan nama panggilan — cukup untuk mengingat “repository ini terhubung ke mana saja”, namun belum menunjukkan alamat sesungguhnya. Alamat ditampilkan dengan flag -v:
git remote -vOutput yang Dihasilkan:
origin /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git (fetch)
origin /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git (push)Setiap baris terdiri atas tiga bagian: nama remote, alamatnya, dan peran baris itu. Dua baris dengan nama sama menandakan satu remote yang alamatnya dipakai dua arah — (fetch) untuk mengambil perubahan, (push) untuk mengirim perubahan. Pada umumnya kedua alamat itu identik; pasangan yang berbeda hanya relevan untuk pola khusus seperti URL push cadangan, yang kita bahas di chapter Mengganti Remote URL
. Perlu dicatat, antara nama dan alamat pada keluaran di atas terdapat karakter TAB — begitu pula pada keluaran -v sepanjang chapter ini, meski mata kita membacanya seperti spasi.
Membedah Kondisi Remote dengan show #
Daftar dan alamat hanyalah bagian statis. Pertanyaan yang lebih tajam — “cabang apa saja yang ada di remote, dan apakah salinan saya masih sejalan?” — dijawab oleh git remote show dengan nama remote sebagai argumen:
git remote show originOutput yang Dihasilkan:
* remote origin
Fetch URL: /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git
Push URL: /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git
HEAD branch: main
Remote branch:
main tracked
Local branch configured for 'git pull':
main merges with remote main
Local ref configured for 'git push':
main pushes to main (up to date)Kita baca laporan ini bagian demi bagian. Baris * remote origin adalah kepala laporan untuk remote bernama origin. Fetch URL dan Push URL mengulang kedua alamat tadi. HEAD branch: main menyebut cabang bawaan yang akan diterima git clone baru. Bagian Remote branch: mendaftar cabang di sisi remote — di sini satu-satunya main, dan catatan tracked berarti Git menyimpan salinan penunjuknya secara lokal. Bagian Local branch configured for 'git pull': memetakan cabang lokal ke pasangannya di remote, dan Local ref configured for 'git push': kebalikannya — lengkap dengan status up to date karena clone kita belum menyimpang dari origin. Satu laporan show dengan demikian meringkat seluruh pengaturan kolaborasi repository kita.
Menambah, Mengganti Nama, dan Menghapus Entri #
Tim kita menyiapkan satu server cadangan untuk mencadangkan repository. Entri baru didaftarkan dengan subcommand add — mirip pola git remote add origin ../pusat.git yang akan kita praktikkan penuh di chapter Menambahkan Remote
:
git remote add cadangan ../gudang-cadangan.git
git remoteOutput yang Dihasilkan:
cadangan
originDaftar kini memuat dua nama, dan keduanya bisa dibedakan alamatnya lewat -v:
git remote -vOutput yang Dihasilkan:
cadangan ../gudang-cadangan.git (fetch)
cadangan ../gudang-cadangan.git (push)
origin /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git (fetch)
origin /home/z/my-project/tutorial-extracted/work/sandbox/remote-repository/part-a/latihan-daftar/proyek-utama.git (push)Perhatikan pola alamat yang berbeda: entri cadangan mencatat jalur relatif ../gudang-cadangan.git persis seperti yang kita ketik saat add, sedangkan origin memuat jalur absolut karena ia lahir dari git clone yang menyimpan alamat yang sudah dijabarkan penuh. Keduanya sama-sama sah — Git menyelesaikan jalur relatif terhadap posisi repository saat remote digunakan.
Nama panggilan boleh dirapikan kapan saja. Subcommand rename memindahkan cadangan menjadi backup — dan remove mengeluarkan entri dari buku alamat:
git remote rename cadangan backup
git remoteOutput yang Dihasilkan:
backup
origingit remote remove backup
git remoteOutput yang Dihasilkan:
originKedua subcommand ini bekerja dalam senyap — tanpa keluaran — sehingga daftar remote setelahnya menjadi bukti terbaik bahwa perintahnya berhasil.
Ringkasan Subcommand #
| Perintah | Peran |
|---|---|
git remote | Menampilkan daftar nama remote |
git remote -v | Menampilkan nama, alamat, dan arah fetch/push |
git remote add <nama> <url> | Mendaftarkan remote baru |
git remote rename <lama> <baru> | Mengganti nama panggilan remote |
git remote remove <nama> | Menghapus remote beserta salinan cabangnya |
git remote show <nama> | Melaporkan cabang, tracking, dan status sinkron |
git remote get-url <nama> | Menampilkan alamat remote (chapter Mengganti Remote URL ) |
git remote set-url <nama> <url> | Mengubah alamat remote (chapter Mengganti Remote URL ) |
Seluruh subcommand ini terdokumentasi lengkap di dokumentasi git remote . Buku alamat kini bisa kita baca dan tata; saatnya mengisinya lewat jalur yang paling sering ditemui di dunia nyata — repository lokal yang sudah berisi commit, dihubungkan ke server baru untuk pertama kalinya. Caranya ada di chapter berikutnya.