Kursus
Saat kita perlu bekerja pada sebuah branch di repositori remote, seperti pekerjaan rekan atau branch fitur baru, kita menghadapi tantangan untuk mengakses dan memperbarui branch tersebut secara lokal.
Untungnya, Git menyederhanakan proses ini dengan menyediakan perintah yang mudah untuk membuat salinan lokal dari branch remote. Ini memungkinkan kita beralih ke branch yang diinginkan, berkontribusi, dan berkolaborasi secara efektif dengan tim.
Sebagai jawaban cepat, untuk checkout ke branch bernama <branch_name>, jalankan:
git fetch origin <branch_name>
git checkout -b <branch_name> origin/<branch_name>
Dalam artikel ini, kita membahas perintah-perintah tersebut dan mempelajari cara kerjanya lebih mendalam.
Proses Dua Langkah: git fetch dan git checkout
Untuk mulai bekerja pada branch remote secara lokal, pertama kita perlu memastikan bahwa repositori lokal kita mutakhir dengan repositori remote. Lalu, kita dapat membuat salinan lokal dan mulai bekerja pada branch tersebut.
Memperbarui repositori lokal
Untuk memperbarui repositori lokal, kita menggunakan perintah git fetch. Bentuk paling sederhananya tanpa argumen:
git fetch
Saat digunakan tanpa argumen, perintah git fetch mengambil semua branch dari repositori remote bawaan. Meskipun ini mencakup branch yang kita inginkan, ini juga akan memakan lebih banyak ruang disk lokal.
Jika ruang disk menjadi pertimbangan, kita bisa menentukan branch yang ingin diambil dengan meneruskannya sebagai parameter ke perintah:
git fetch origin <branch_name>
Ganti <branch_name> dengan nama branch yang diinginkan. Parameter origin menentukan nama repositori remote. Secara bawaan, saat kita mengkloning sebuah repositori, remote diberi nama origin.
Perlu dicatat bahwa memperbarui referensi remote dengan fetch tidak akan memengaruhi file lokal mana pun atau menyebabkan konflik. Secara lokal, ada dua entitas yang berbeda:
- Direktori kerja saat ini
- Repositori lokal
Perubahan dan commit kita saat ini berada di direktori kerja saat ini. Ini adalah file yang kita lihat saat membuka direktori repositori di komputer. File-file ini tidak diperbarui dengan git fetch. Hanya repositori lokal yang diperbarui, yang dapat dianggap sebagai salinan tersembunyi dari repositori remote di mesin lokal kita.
Checkout ke branch remote
Dengan salinan repositori remote yang mutakhir, sekarang kita dapat membuat salinan lokal dari branch remote menggunakan perintah git checkout:
git checkout -b <branch_name> origin/<branch_name>
Ganti <branch_name> dengan nama branch remote yang diinginkan. Parameter pertama setelah -b adalah nama yang kita inginkan untuk branch lokal. Secara konvensi, kita menggunakan nama yang sama untuk keduanya, tetapi kita bisa menggunakan nama lain selama belum ada branch lokal lain dengan nama tersebut:
git checkout -b <local_branch_name> origin/<branch_name>
Setelah perintah ini berhasil dijalankan, Git akan mengalihkan direktori kerja saat ini ke branch tersebut, dan kita siap mulai mengerjakannya.
git checkout vs git switch
Perintah git checkout telah ada sejak awal Git. Cakupannya melampaui pembuatan salinan lokal branch atau berpindah dari satu branch ke branch lain. Misalnya, perintah ini dapat mengambil file tertentu dari repositori remote.
Dalam versi Git terbaru, perintah git switch dibuat dengan tujuan khusus untuk membuat salinan lokal dari branch remote dan berpindah di antara branch lokal.
Saya menyarankan menggunakan git switch alih-alih git checkout karena kapabilitas git checkout yang lebih luas kadang dapat menyebabkan kesalahan.
Untuk mempelajari cara melakukan tindakan yang sama seperti yang kita pelajari di artikel ini menggunakan git switch, Anda dapat membaca tutorial ini: Git Switch Branch: Panduan dengan Contoh Praktis.
Kesimpulan
Membuat salinan lokal dari branch Git remote sangat penting untuk kolaborasi. Dengan menggunakan git fetch dan git checkout, kita dapat memperbarui repositori lokal dengan perubahan dari remote dan beralih ke branch yang diinginkan.
Meskipun git checkout klasik menyediakan fungsionalitas yang tangguh, perintah git switch yang lebih baru menawarkan alternatif yang lebih ringkas khusus untuk manajemen branch, sehingga mengurangi risiko kesalahan.
FAQs
Saya mendapat error: "please commit your changes or stash them before you switch branches." Bagaimana cara memperbaikinya?
Git mencegah kita berpindah ke branch lain jika branch saat ini memiliki perubahan yang belum di-commit. Untuk mengatasi ini, kita bisa menyimpan sementara perubahan atau melakukan commit.
Untuk melakukan commit gunakan perintah berikut:
git commit -m "Pesan commit"
Sebagai alternatif, jika kita ingin menyimpan perubahan tanpa melakukan commit dulu, kita bisa menggunakan perintah git stash untuk menyimpan pekerjaan sementara:
git stash
Nantinya, kita dapat menerapkannya kembali setelah kembali ke branch awal dan menggunakan perintah git stash pop.
Bagaimana jika branch remote memiliki nama yang sama dengan branch lokal?
Nama branch harus unik di Git. Jika kita mendapat error yang menyatakan bahwa branch sudah ada, artinya ada branch lokal dengan nama yang sama. Ini bisa berarti dua hal:
- Kita sudah pernah checkout branch ini sebelumnya. Dalam kasus ini, kita bisa langsung beralih tanpa fetch menggunakan perintah
git checkout <branch_name>. Perhatikan bahwa kita menghapus parameter-byang digunakan untuk menunjukkan kita ingin membuat branch baru. Karena branch sudah ada, kita tidak perlu membuat ulang. - Pada suatu waktu, kita membuat branch lain yang kebetulan memiliki nama yang sama. Kita dapat mengatasinya dengan menggunakan nama branch yang berbeda dengan
git checkout -b <different_name> origin/<branch_name>.
Bisakah saya membuat perubahan langsung pada branch remote?
Tidak, perubahan pada branch Git dilakukan dengan terlebih dahulu membuat salinan lokal dari sebuah branch seperti yang kita pelajari di atas, lalu membuat commit yang merepresentasikan perubahan yang diinginkan.
Bagaimana cara memperbarui branch lokal saya dengan perubahan terbaru dari remote?
Untuk memperbarui branch lokal kita dengan perubahan terbaru dari branch remote yang sesuai, biasanya kita menggunakan perintah git pull:
git pull origin <branch_name>
Perintah ini melakukan git fetch dan git merge untuk memperbarui branch lokal kita. Kita telah mempelajari bahwa git fetch memperbarui repositori lokal dengan versi remote terbaru. Perintah git merge menggabungkan perubahan tersebut ke branch lokal kita. Untuk detail lebih lanjut, lihat tutorial Git push dan pull ini.
Saya mendapat error: "remote branch not found." Bagaimana cara memperbaikinya?
Error ini menunjukkan bahwa branch tersebut tidak ada di salinan lokal repositori kita. Jadi kemungkinan:
- Branch tidak ada, yang mungkin menunjukkan salah ketik pada nama branch atau itu adalah branch lama yang sudah dihapus.
- Repositori lokal belum mutakhir. Seperti yang kita pelajari di atas, kita dapat memperbaruinya menggunakan
git fetch.

