Pesan commit yang rapi menjaga kualitas tiap unit kerja; strategi branching menentukan bagaimana unit-unit itu menyusun riwayat tim. Chapter ini membandingkan lima strategi yang dibahas tuntas di section kolaborasi dan praktik — dari yang tanpa upacara sampai yang berlapis lima jenis branch — lalu menutupnya dengan tabel penamaan branch dan tabel kapan rilis cukup dari main. Cara pakainya: baca baris paling sederhana yang menjawab ukuran tim dan ritme produk kita, jangan baris yang paling terkenal. Kerangka empat pertanyaan lengkapnya — jumlah kontributor, jenis produk, kematangan CI, budaya review — ada di Memilih Workflow yang Tepat ; matriks rekomendasinya memetakan kombinasi yang paling umum ke strategi di tabel berikut.

Lima Strategi dalam Satu Tabel #

Kolom berat mengukur banyaknya aturan dan cabang yang harus dijaga — bukan kualitas: strategi terbaik adalah yang paling sederhana namun menjawab masalah tim. Semua baris memakai peralatan yang sudah dibedah di contekan perintah; bedanya hanya pada siapa boleh commit ke mana dan kapan pekerjaan menyatu.

StrategiCabang dipakaiIntegrasiCocok untukBerat
Single main (Proyek Pribadi )hanya maincommit langsung ke main, rilis lewat tagpekerja solo dengan cadangan git bundlepaling ringan
Feature branch (Feature Branch Workflow )main + fitur/*merge (kadang rebase dulu) ke main, review sebelum gabungtim kecil-menengah dengan review per fitursedang
GitHub Flow (GitHub Flow )main + branch deskriptif pendekpull request + merge; deploy menyusul mergeweb yang deploy terus-menerusringan
Trunk-based (Trunk-Based Development )main; branch hidup <1 haricommit kecil langsung atau PR kecil, feature flag menutup fitur setengah jaditim 6+ dengan CI matangaturan ringan, disiplin berat
GitFlow (GitFlow )main, develop, feature/*, release/*, hotfix/*merge berlapis; main hanya bergerak saat rilis + tagrilis terjadwal dengan beberapa versi hiduppaling berat

Menamai Branch #

Nama branch adalah pengumuman niat — PR sering dibuka jauh sebelum pekerjaan selesai, jadi nama yang deskriptif sudah menceritakan isinya. Konvensinya: prefix jenis pekerjaan menyusul kebab-case yang menyebut tugasnya — fitur/kontak bukan siti (Strategi Branching , GitHub Flow ).

Pola namaBerangkat dariKapan dipakai
fitur/pencarianmain (atau develop di GitFlow)satu fitur terisolasi sampai matang
perbaikan/footer-miringmainkoreksi kecil di jalur PR — padanan umum bugfix/*
release/1.2main atau developpembekuan calon rilis; sejak lahir hanya menerima perbaikan
hotfix/token-kedaluwarsatag rilis atau maindarurat produksi — merge balik ke main dan branch rilis

Rilis dari main atau dari Branch Rilis #

Dua jalur menutup kebutuhan yang berbeda: produk yang bisa dikirim kapan saja cukup membekukan titik di main, produk multi-versi membutuhkan branch yang hidup selama versinya dirawat. Pembedanya satu pertanyaan — apakah beberapa versi hidup bersamaan di tangan pengguna (Koordinasi Release ).

SituasiJalur rilis
Deploy terus-menerus (GitHub Flow)tag pada main — tanpa branch rilis (GitHub Flow )
Rilis terjadwal, satu-dua versi hidupgit switch -c release/1.2 main, stabilisasi, tag, merge balik (Workflow Release )
Darurat di versi produksihotfix/* dari tag rilis, naikkan PATCH, merge balik dua jalur (Workflow Hotfix )

Riwayat tim yang sehat pun tetap menabrak masalah: push ditolak, HEAD terlepas, berkas lenyap, hook diam di clone baru. Dua belas gejala seperti itu beserta penyebab dan penawarnya dirangkum dalam tabel keputusan chapter berikutnya: Troubleshooting .