Strategi Branching & Conventional Commits
Alur kerja tim yang rapi: penamaan branch, Git Flow vs GitHub Flow vs trunk-based, dan format pesan commit standar.
Kenapa butuh strategi?
Git tidak memaksa alur apa pun; tanpa kesepakatan, tim cepat berantakan: branch bernama aneh, main rusak, rilis tak jelas. Strategi branching adalah kesepakatan tim tentang jenis branch dan aturan penggabungannya.
Tiga strategi populer
| Strategi | Branch utama | Cocok untuk |
|---|---|---|
| GitHub Flow | Hanya main + branch fitur berumur pendek, digabung lewat PR | Web/aplikasi yang rilis terus-menerus (paling sederhana) |
| Git Flow | main (rilis), develop (integrasi), plus feature/*, release/*, hotfix/* | Produk berversi dengan jadwal rilis (aplikasi mobile, perangkat lunak desktop) |
| Trunk-based | Semua orang commit kecil ke main (atau branch sangat pendek) dengan feature flag | Tim matang dengan CI/CD kuat |
Bagi pemula dan tim kecil: GitHub Flow. Aturannya ringan: main selalu bisa dirilis; semua pekerjaan di branch; masuk lewat PR.
Penamaan branch
feature/keranjang-belanja # fitur baru
fix/total-keranjang-negatif # perbaikan bug
hotfix/crash-checkout # perbaikan darurat di produksi
docs/panduan-instalasi # dokumentasi
chore/update-dependensi # perawatan
refactor/pisah-modul-bayar
Huruf kecil, kata dipisah tanda hubung, awalan jenis pekerjaan. Sertakan nomor issue bila ada: feature/123-keranjang.
Conventional Commits
Format pesan commit yang disepakati luas, sehingga mudah dibaca dan bisa diproses alat otomatis (changelog, penentuan versi):
<tipe>(<lingkup opsional>): <deskripsi singkat>
<badan opsional>
<footer opsional>
| Tipe | Arti | Efek SemVer |
|---|---|---|
feat | Fitur baru | MINOR |
fix | Perbaikan bug | PATCH |
docs | Dokumentasi | — |
refactor | Merapikan kode tanpa mengubah perilaku | — |
test | Menambah/mengubah tes | — |
chore | Tugas perawatan (build, dependensi) | — |
perf, style | Performa, format kode | — |
feat(keranjang): tambah tombol hapus item
fix(diskon): batasi diskon maksimal 100%
docs: perbarui panduan instalasi
feat!: ganti format respons API # tanda ! = breaking change (MAJOR)
Kebiasaan pendukung
- Branch berumur pendek; gabungkan sering.
- Lindungi
main(PR + review + CI wajib). - Rilis ditandai dengan tag SemVer.
- Tulis README & CONTRIBUTING agar kontributor baru tahu aturan.