Memahami konsep branch di Git sebagai pointer ringan yang menunjuk ke commit hash, lalu menguasai perintah dasar branching: melihat, membuat, berpindah, mengubah nama, dan menghapus branch.

Di episode 5, kalian sudah bisa membandingkan setiap perubahan dengan git diff dan menelusuri siapa penulis setiap baris kode melalui git blame. Namun semua itu masih berjalan di satu jalur tunggal: satu cabang, satu cerita linear. Sekarang saatnya membuka kekuatan yang membuat Git melesat jauh dari pendahulunya: branching.
Branch adalah fondasi kolaborasi modern. Di dunia nyata, setiap developer mengerjakan fitur di jalurnya sendiri tanpa saling menabrak, lalu menggabungkan hasilnya menjadi satu. Tanpa branching, tim besar akan terus-menerus bertabrakan dalam satu file yang sama. Di episode ini kalian akan memahami apa sebenarnya branch itu, lalu menguasai perintah dasar untuk membuat, berpindah, mengubah nama, dan menghapus branch.
Ketika kalian membuat commit, Git menyimpan snapshot dalam objek-objek: blob untuk isi file, tree untuk struktur direktori, dan commit sebagai metadata yang menunjuk ke tree. Setiap commit memiliki hash unik seperti a1b2c3d4e5f6....
Sebuah branch hanyalah pointer ringan ke satu commit hash. Bukan folder berisi salinan kode, bukan replika data yang berat. Cukup satu referensi bernama yang menunjuk ke commit tertentu. Saat kalian membuat commit baru di branch tersebut, pointer hanya maju satu langkah ke commit terbaru.
Anggap riwayat commit seperti buku catatan berjilid. Branch adalah penanda halaman (bookmark): selembar kertas tipis yang menunjuk ke halaman tertentu. Menambahkan branch baru tidak menyalin seluruh isi buku, hanya menambahkan satu penanda baru. Itulah mengapa membuat branch di Git sangat cepat dan murah.
Satu pointer lagi yang wajib dikenal: HEAD. HEAD adalah penanda "posisi kita saat ini". Saat berpindah branch, HEAD ikut berpindah menunjuk ke branch yang aktif. Kedua konsep ringan inilah yang memungkinkan Git menangani banyak alur kerja paralel tanpa membebani disk.
Perintah git branch menampilkan semua branch lokal, dengan tanda * pada branch yang sedang aktif:
git branch fitur-login
* maingit branch <nama-branch> membuat branch baru yang menunjuk ke posisi HEAD saat ini tanpa berpindah ke sana:
git branch fitur-login
git branchSecara tradisional, berpindah branch dilakukan dengan git checkout <nama-branch>. Masalahnya, git checkout ini kebanjiran tugas: selain memindahkan antar branch, ia juga dipakai memulihkan file ke versi sebelumnya. Dua tanggung jawab berbeda terkumpul dalam satu perintah — membingungkan dan rawan salah pakai.
Sejak Git 2.23 (tahun 2019), dua tugas itu dipisah menjadi perintah modern yang lebih jelas:
git switch <nama-branch> — khusus untuk berpindah branch.git restore <file> — khusus memulihkan file atau mengembalikan perubahan (menggantikan peran lama git checkout -- <file>).Tip
Biasakan git switch dan git restore sejak awal. Keduanya menjadi standar di dokumentasi resmi Git dan seluruh ekosistem modern, sehingga kalian tidak perlu menghafal perilaku overloaded dari git checkout yang lama.
git checkout main
git checkout fitur-loginKedua pasang perintah di atas menghasilkan hal yang sama: berpindah branch. Bedanya, git switch tidak pernah mencampur urusan memulihkan file, sehingga maksud perintah selalu jelas — satu perintah, satu tanggung jawab.
Sering kalian ingin langsung bekerja di branch baru. Gunakan git switch -c <nama-branch> (huruf c berarti create) untuk membuat sekaligus berpindah dalam satu langkah. Perintah ini menggantikan pola lama git checkout -b <nama-branch> yang sebelumnya dipakai untuk tujuan yang sama.
git switch -c fitur-navigation
git branchBeri nama branch yang deskriptif dan konsisten. Konvensi umum yang dipakai banyak tim:
feature/nama-fitur — untuk fitur baru.bugfix/nama-bug — untuk perbaikan bug kecil.hotfix/nama-masalah — untuk perbaikan darurat produksi.chore/nama-tugas — untuk tugas non-fitur seperti refactor atau dokumentasi.Nama yang baik membuat git branch terasa seperti peta kerja tim, bukan teka-teki.
Setelah sebuah branch selesai digabungkan, hapus branch itu agar daftar tetap bersih. git branch -d <nama-branch> hanya menghapus branch yang sudah di-merge. Jika branch masih berisi commit yang belum digabungkan, Git menolak — mencegah pekerjaan terbuang sia-sia.
git branch -D <nama-branch> adalah versi paksa: menghapus branch meski ada commit yang belum di-merge. Gunakan hanya jika benar-benar yakin pekerjaannya tidak diperlukan lagi.
Warning
Kalian tidak bisa menghapus branch yang sedang aktif. Git akan menolak dengan pesan "cannot delete branch ... checked out". Pindah dulu ke branch lain sebelum menghapusnya.
git branch -d fitur-login
git branchgit branch -m <nama-lama> <nama-baru> mengubah nama branch. Saat berada di dalam branch itu sendiri, cukup tulis git branch -m <nama-baru>. Perintah ini umum dipakai untuk memperbaiki typo atau menyelaraskan konvensi penamaan tim.
git branch -m feature/checkout feature/checkout-page
git branchPoin kunci episode ini:
git branch untuk melihat daftar; git branch <nama> untuk membuat.git switch <nama> untuk berpindah, git switch -c <nama> untuk membuat sekaligus berpindah.git branch -d menghapus aman, git branch -D menghapus paksa.git branch -m untuk mengubah nama branch.Sekarang kalian punya banyak branch yang hidup berdampingan secara paralel. Pertanyaan besarnya: bagaimana menggabungkannya kembali menjadi satu cerita yang utuh? Di episode 7 kita membedah mekanisme penggabungan kode — merge vs rebase dasar, dari fast-forward merge hingga langkah penyelesaian merge conflict yang sering bikin pusing. Sampai jumpa!