Branch hanya berguna apabila pemakaiannya disepakati. Tanpa kesepakatan, repository yang sama dapat dipenuhi branch yang usang, bertabrakan namanya, atau tidak pernah selesai. Topik ini membahas strategi main plus feature branch yang menjadi titik awal hampir semua alur kerja tim, konvensi penamaan yang membuat daftar branch tetap terbaca, dan praktik hidup branch yang pendek.
Main sebagai jalur utuh#
Strategi paling dasar menetapkan satu branch utama, yaitu main, sebagai keadaan proyek yang selalu siap dipakai. Setiap pekerjaan baru dimulai dengan membuat branch dari main, dikerjakan di sana sampai utuh, lalu digabungkan kembali. Dengan aturan ini, main tidak pernah memuat pekerjaan setengah jadi, dan siapa pun yang mengambil main memperoleh versi yang layak dijalankan.
Aturan tersebut menyiratkan disiplin penggabungan: branch fitur baru boleh hidup hanya apabila isinya pada akhirnya masuk kembali ke main. Branch yang gagal diujicobakan dihapus, dan penyimpannya tidak dianggap kerugian karena biaya membuat branch nyaris nol. Sebaliknya, branch yang dijaga berbulan-bulan menggumpalkan pekerjaan besar yang mahal digabungkan, sehingga panjang hidup branch adalah salah satu ukuran kesehatan alur kerja.
Konvensi penamaan#
Nama branch dibaca lebih sering daripada dibayangkan: pada daftar git branch, pada keluaran git log --graph, dan pada daftar commit platform hosting. Konvensi penamaan yang konsisten membuat daftar tersebut menyaring dirinya sendiri. Bentuk yang lazim adalah awalan jenis pekerjaan diikuti garis miring dan deskripsi singkatnya.
| Awalan | Kegunaan | Contoh |
|---|---|---|
feature/ | fitur baru yang menambah kemampuan | feature/ekspor-pdf |
fix/ | perbaikan pada perilaku yang keliru | fix/hitung-diskon |
hotfix/ | perbaikan mendesak pada versi produksi | hotfix/kebocoran-sesi |
chore/ | pemeliharaan tanpa perubahan perilaku | chore/perbarui-dependensi |
Konvensi ini diterapkan langsung pada repository latihan.
# tanggal commit ditetapkan agar keluaran contoh dapat direproduksi secara persis
export GIT_AUTHOR_DATE="2026-11-01T09:00:00+07:00"
export GIT_COMMITTER_DATE="2026-11-01T09:00:00+07:00"rm -rf /tmp/lab-nama
mkdir /tmp/lab-nama
cd /tmp/lab-nama
git init -b main
git config user.name "Budi"
git config user.email "[email protected]"
printf "Panduan awal.\n" > panduan.md
git add panduan.md
git commit -m "Panduan awal"
git branch feature/ekspor-pdf
git branch fix/hitung-diskon
git branch hotfix/kebocoran-sesi
git branch
git branch --list "fix/*"Initialized empty Git repository in /tmp/lab-nama/.git/
[main (root-commit) 91e0134] Panduan awal
1 file changed, 1 insertion(+)
create mode 100644 panduan.md
feature/ekspor-pdf
fix/hitung-diskon
hotfix/kebocoran-sesi
* main
fix/hitung-diskonTanda garis miring pada nama branch bukan hiasan, melainkan penanda hierarki yang dapat difilter. Opsi --list dengan pola semacam fix/* menampilkan hanya kelompok tertentu, dan pola yang sama dipakai banyak alat pelengkap (completion) di terminal. Hindari nama seperti cabang-baru atau nama pribadi, karena keduanya tidak menjelaskan isinya dan cepat menjadi sampah yang tak berani dihapus.
Satu branch, satu gagasan#
Branch yang mengandung dua gagasan sekaligus sulit ditinjau, sulit dibatalkan sebagian, dan hampir pasti bertabrakan dengan pekerjaan lain. Praktik yang menjaga fokus adalah memberi satu branch satu topik, menuliskan topik itu pada namanya, dan menahan godaan memperbaiki hal lain di dalamnya. Temuan kecil di luar topik lebih baik dicatat sebagai pekerjaan baru dengan branchnya sendiri.
Untuk branch yang hidup lebih dari beberapa hari, main terus bergerak dan branch tersebut perlu disegarkan dengan menggabungkan atau me-rebase main ke atasnya agar selisihnya tidak menumpuk. Mekanika penyegaran itu memanfaatkan materi penggabungan dan rebase, sedangkan aturan kerjanya sederhana: segarkan sebelum selisihnya terasa, bukan setelah penggabungan menjadi proyek tersendiri.
Menentukan branch yang siap dihapus#
Semakin banyak branch dibuat, semakin penting pemeriksaan berkala atas daftarnya. Git menyediakan dua filter yang menjawab pertanyaan utamanya: branch mana yang isinya sudah utuh masuk main, dan branch mana yang masih menyimpan pekerjaan terpisah.
git branch --merged main
git branch --no-merged main feature/ekspor-pdf
fix/hitung-diskon
hotfix/kebocoran-sesi
* mainOpsi --merged menampilkan branch yang seluruh commitnya sudah terkandung di main, sehingga aman dihapus dengan git branch -d, sedangkan --no-merged menampilkan sisanya. Pada keluaran di atas, seluruh branch baru masuk daftar pertama karena belum menyimpan commit apa pun di luar main, sedangkan daftar kedua kosong karena tidak ada pekerjaan yang terpisah. Pada repository nyata, pemeriksaan ini biasa dijalankan bersama penghapusan massal branch yang sudah selesai, sehingga daftar branch tidak pernah menjadi arsip yang tak terawat.
Ringkasan#
- Strategi dasarnya adalah
mainyang selalu siap dipakai dan setiap pekerjaan berlangsung pada branch tersendiri yang akhirnya digabungkan kembali. - Nama branch memakai awalan jenis pekerjaan seperti
feature/,fix/, danhotfix/sehingga daftar branch dapat difilter dan terbaca. - Satu branch seharusnya memuat satu gagasan, dan branch panjang disegarkan terhadap
mainsecara berkala.
Referensi#
- Git Branching - Branching Workflows — Pro Git — bab Pro Git tentang pola branch jangka panjang dan jangka pendek.
- GitHub Flow — GitHub Docs — alur kerja branch sederhana yang dipakai luas pada pengembangan perangkat lunak.