Kursus
Bayangkan Anda sedang menulis buku dan ingin bereksperimen dengan ide baru tanpa merusak naskah asli. Anda bisa memulai buku catatan baru untuk setiap ide, sehingga draf tetap terpisah.
Git, sebuah sistem kontrol versi, memungkinkan pengembang perangkat lunak melakukan hal serupa pada kode melalui "branch." Setiap branch seperti jalur pengembangan terpisah, yang memungkinkan Anda mengeksplorasi perubahan tanpa memengaruhi basis kode utama.

Dalam artikel ini, saya akan memandu Anda menggunakan git clone, dengan fokus pada pengklonan branch tertentu. Jika Anda ingin mempelajari lebih lanjut tentang Git, saya merekomendasikan kursus Introduction to Git ini.
Mari mulai dengan jawaban singkat bagi Anda yang terburu-buru. Setelah itu, kita akan membahas detailnya.
Jawaban Singkat: Cara Mengkloning Branch Tertentu
Untuk mengkloning branch tertentu dari repositori git, gunakan perintah:
git clone --single-branch --branch <branch_name> <repository_url>
Ganti <branch_name> dengan nama branch yang diinginkan dan <repository_url> dengan URL repositori. Perintah ini membuat salinan lokal dari branch yang ditentukan, sehingga Anda bisa langsung fokus mengembangkan pada branch tersebut.
Contoh
Sepanjang artikel ini, kita akan menggunakan repositori ini. Anda bisa menggunakannya untuk mencoba perintah yang Anda pelajari di mesin Anda. Repositori ini berisi tiga branch:
main: Branch default dengan dua berkas teks.add-new-file: Branch tempat berkas ketiga telah ditambahkan.modify-file: Branch tempat berkas kedua telah dimodifikasi.
Berikut cara kita dapat mengkloning branch add-new-file:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Apa Itu git clone?
Secara default, git clone dirancang untuk menyalin seluruh repositori ke direktori baru di mesin lokal Anda, mengkloning semua branch. Berikut sintaksnya:
git clone <repository_url>
Untuk mengkloning repositori contoh, kita dapat melakukan hal berikut:
git clone https://github.com/fran-aubry/git-clone-example.git
Setelah menjalankan perintah ini, semua branch akan disalin ke mesin lokal Anda. Namun, hanya berkas pada satu branch yang terlihat pada satu waktu, disebut branch yang checked-out. Setelah mengkloning repositori, branch default (biasanya bernama main atau master) adalah yang di-checkout.

Mengganti branch
Setelah klon penuh, kita dapat berpindah (checkout) ke branch yang diinginkan dengan menggunakan perintah git checkout. Misalnya, untuk checkout ke branch modify-file, kita akan melakukan hal berikut:
git checkout modify-file

Kedalaman kloning
Saat bekerja dengan git, perubahan pada suatu branch disimpan dengan melakukan commit menggunakan perintah git commit. Setiap commit membuat keadaan baru dari branch tersebut, yang bisa Anda kembalikan jika diperlukan. Anggap setiap commit sebagai membuat sebuah snapshot, dengan git melacak semua snapshot tersebut. Anda bisa mengembalikan branch ke salah satu snapshot ini kapan saja.
Perintah git clone, saat digunakan tanpa opsi, mengunduh setiap commit dari setiap branch ke mesin lokal Anda. Bergantung pada ukuran proyek, ini bisa memakan banyak ruang penyimpanan lokal. Jika Anda tahu tidak memerlukan seluruh riwayat, Anda dapat menggunakan parameter --depth untuk menentukan berapa banyak commit (atau snapshot) yang ingin Anda klon.
Untuk mengkloning branch utama sambil hanya memuat commit terbaru, gunakan perintah berikut:
git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git
Mengkloning Branch Tertentu
Kita telah mempelajari cara mengkloning repositori menggunakan git clone. Secara default, perintah ini mengkloning semuanya ke mesin lokal Anda. Sering kali, Anda hanya tertarik untuk bekerja pada branch tertentu, sehingga akan lebih efisien jika hanya mengkloning branch tersebut. Pendekatan ini menghemat ruang disk dan memungkinkan Anda mulai bekerja segera tanpa perlu berpindah branch setelah mengklon.
Dalam analogi penulisan buku, bayangkan Anda ditugaskan untuk menulis ulang bab kedua. Dalam kasus ini, Anda sebaiknya hanya mengkloning branch tempat tugas tersebut dilakukan, karena tidak perlu mengakses branch yang terkait dengan revisi bab lain.
Anda dapat memberi tahu git untuk mengkloning satu branch dengan menambahkan argumen --single-branch dan --branch diikuti nama branchnya:
git clone --single-branch --branch <branch_name> <repository_url>
Mari kita uraikan perintahnya:
git clone: Perintah git dasar untuk menyalin repositori dari sumber jarak jauh ke mesin lokal Anda.
--single-branch: Opsi ini memberi tahu Git untuk hanya mengkloning satu branch. Jika tidak ada branch yang ditentukan, branch default akan dikloning.
--branch <branch_name>: Opsi ini menentukan branch yang akan dikloning. <branch_name> adalah nama branch yang ingin Anda klon.<repository_url>: URL repositori.
Sebagai contoh, untuk hanya mengkloning branch modify-file dari repositori kita, kita dapat melakukan hal berikut:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Cara Bekerja dengan Branch yang Dikloning
Saat bekerja pada suatu branch, ada tiga operasi penting yang perlu Anda lakukan:
- Menyimpan pekerjaan saat ini dengan membuat snapshot dari keadaan saat ini.
- Mengunggah perubahan Anda agar semua orang dapat mengaksesnya.
- Mengunduh perubahan orang lain dan menggabungkannya dengan milik Anda.
Menyimpan perubahan Anda dengan git commit
Di Git, menyimpan pekerjaan Anda disebut membuat commit. Proses ini mengambil snapshot dari keadaan branch yang sedang Anda kerjakan.
Keadaan branch disimpan di mesin lokal Anda setelah setiap commit, memungkinkan Anda menavigasi di antara berbagai tahap kemajuan.

Untuk melakukan commit perubahan Anda di git, gunakan perintah git commit. Namun, sebelum melakukan commit, git perlu mengetahui berkas mana yang ingin Anda sertakan dalam commit. Anda menentukan berkas yang akan disimpan menggunakan perintah git add. Sintaks perintah ini adalah sebagai berikut:
git add <path_to_file>
Dalam sintaks tersebut, <path_to_file> adalah path ke berkas yang ingin Anda commit. Misalnya, jika kita berada pada branch modify-file dari repositori contoh dan telah menambahkan sebuah paragraf ke file2.txt, Anda akan menambahkan berkas tersebut dengan menjalankan:
git add file2.txt
Setelah menambahkan semua berkas yang ingin Anda sertakan dalam commit, Anda dapat melanjutkan commit dengan menjalankan:
git commit -m <message>
Di sini, argumen <message> harus berupa pesan ringkas dalam tanda petik ganda, yang secara singkat menjelaskan perubahan. Contohnya:
git commit -m "Add paragraph"
Berikut beberapa konvensi untuk pesan commit. Ini penting untuk memastikan kejelasan dan pemahaman di antara semua orang yang mengerjakan proyek:
- Gunakan bentuk imperatif: Mulailah pesan commit Anda dengan kata kerja bentuk imperatif (mis., "Add," "Fix," "Update"). Misalnya, alih-alih "Added new feature," tulis "Add new feature."
- Ringkas namun deskriptif: Usahakan pesan singkat, idealnya di bawah 50 karakter. Namun, utamakan kejelasan dalam menggambarkan perubahan. Alih-alih "Changed stuff," tulis "Update styling for navigation bar."
- Hindari pesan generik: Hindari pesan yang samar seperti "Fix bugs" atau "Make improvements." Sebaliknya, jadilah spesifik: "Fix bug in login form validation" atau "Improve readability of documentation."
Mengunggah perubahan Anda dengan git push
Saat Anda melakukan commit, Anda membuat snapshot perubahan di mesin lokal Anda. Agar orang lain dapat mengakses perubahan Anda, Anda perlu mengunggahnya. Untuk melakukannya, gunakan perintah push.
Sintaks dasar perintah push di Git adalah:
git push <remote> <branch>
Mari kita uraikan:
<remote>: Nama repositori jarak jauh tempat Anda ingin mendorong perubahan. Secara default, saat Anda mengkloning repositori, repositori jarak jauh bernama origin.<branch>: Nama branch yang perubahannya ingin Anda dorong ke repositori jarak jauh. Jika Anda melewatkan argumen ini, Git akan mendorong perubahan berdasarkan branch saat ini dan konfigurasi pelacakan jarak jauh.
Berikut beberapa kasus penggunaan umum git push:
- Mendorong perubahan dari branch saat ini:
git push - Mendorong perubahan dari branch tertentu:
git push origin <branch>
Mengunduh perubahan dengan git pull
Git memungkinkan tim besar bekerja secara bersamaan pada proyek yang sama. Saat rekan menyunting branch yang sama dengan Anda, branch lokal Anda bisa menjadi kedaluwarsa dibandingkan branch jarak jauh.
Untuk mengunduh commit orang lain, kita menggunakan perintah git pull. Sintaks dasar perintah pull di git adalah:
git pull <remote> <branch>
Berikut fungsi masing-masing parameter:
<remote>: Nama repositori jarak jauh tempat Anda ingin menarik perubahan. Secara default, repositori ini bernama origin.<branch>: Nama branch dari mana Anda ingin menarik perubahan. Jika tidak ditentukan, git menggunakan branch saat ini beserta upstream branch-nya.
Berikut beberapa kasus penggunaan umum git pull:
- Menarik perubahan dari branch saat ini:
git pull - Menarik perubahan dari branch tertentu:
git pull origin <branch>
Alur kerja commit-pull-push
Saat menggunakan Git, saya menyarankan sering melakukan pull pembaruan agar branch lokal Anda tetap mutakhir. Saya menganjurkan mengikuti praktik terbaik berikut:
- Sebelum mulai bekerja, tarik pembaruan terbaru untuk branch Anda saat ini agar Anda bekerja pada versi paling baru.
- Sering-seringlah commit, pastikan tiap commit berfokus pada perubahan kecil yang terkait secara logis.
- Setelah membuat beberapa perubahan dan membuat commit, lakukan pull lagi untuk memperbarui branch Anda, jika ada orang lain yang juga memperbaruinya secara bersamaan.
- Terakhir, dorong perubahan Anda ke repositori jarak jauh.

Konflik Git
Saat menjalankan perintah git pull untuk mengunduh perubahan dari repositori jarak jauh, ada kemungkinan terjadi skenario di mana commit lain telah memodifikasi baris yang sama dengan commit lokal Anda. Git mencoba menggabungkan perubahan secara otomatis, dan dalam banyak kasus berhasil. Misalnya, jika perubahan dibuat pada bagian berbeda dari berkas yang sama, Git dapat menggabungkannya mulus karena commit memengaruhi bagian yang berbeda.
Namun, jika Anda dan kontributor lain menyunting paragraf yang sama, git tidak akan dapat menentukan versi mana yang harus dipertahankan, sehingga terjadi konflik merge. Dalam situasi ini, Anda harus menyelesaikan konflik secara manual dengan memutuskan perubahan mana yang akan dipertahankan.
Untuk panduan lebih lanjut dalam menyelesaikan konflik, saya merekomendasikan membaca artikel tentang cara menyelesaikan konflik merge di Git.
Unduhan GitHub
Dalam kondisi tertentu, Anda menginginkan salinan lokal dari sebuah repositori untuk digunakan tanpa bermaksud memodifikasinya. Jika itu repositori publik, Anda tidak perlu memasang Git di mesin lokal. Anda bisa langsung mengunduh repositori dari GitHub dengan mengeklik tombol Code lalu tombol Download Zip, seperti ditunjukkan di bawah ini:

Kesimpulan
Git cloning memungkinkan Anda menyalin repositori Git ke mesin lokal, sehingga Anda dapat memanfaatkan kode atau mengembangkannya dengan menambahkan fungsionalitas baru. Saat mengkloning repositori, semua branch diunduh, yang dapat memakan banyak ruang disk.
Branch digunakan untuk mengerjakan perubahan atau fitur tertentu. Mengkloning branch tertentu memungkinkan Anda berkontribusi pada perubahan tersebut tanpa mengunduh pekerjaan yang tidak terkait, sehingga membutuhkan ruang disk jauh lebih sedikit dan membuat disk lokal Anda tetap bersih.
Jika Anda ingin mempelajari lebih lanjut tentang topik ini, saya merekomendasikan GitHub and Git Tutorial for Beginners ini.

