Cheat-sheet Conventional Branch di Git, Sangat Disarankan
Kenapa Perlu Conventional Branch di Git?
Sebagai developer, kita sering membuat banyak branch dalam satu repository. Namun tanpa aturan yang jelas, branch bisa cepat berantakan. Dengan Conventional Branch, struktur penamaan branch menjadi konsisten, mudah dibaca, dan membantu otomatisasi CI/CD. Sama seperti Conventional Commits, sistem ini tidak wajib, tapi sangat direkomendasikan untuk project kolaboratif atau tim besar.
Sumber pembuatan cheat sheet conventional branch berasal dari pengalaman pribadi serta sumber external sebagai berikut:
Definisi
Conventional Branch adalah aturan commits yang telah disepakati oleh komunitas developer sebagai standar commit untuk kemudahan tracking version control system seperti git. Meskipun tidak wajib, aturan ini sangat disarankan dan sudah diterapkan oleh mayoritas developer. Conventional ini juga boleh dibuat aturan tersendiri untuk pattern branch, misalnya dalam suatu perusahaan ingin membuat aturannya tersendiri. Meskipun fokusnya adalah untuk developer, conventional branch dapat diterapkan di luar bidang itu seperti data analyst, data science, dan lain sebagainya dengan sedikit perbedaan.
Penggunaan branch dapat dilakukan dengan git branch untuk melihat daftar branch dan branch saat ini. Untuk berpindah branch, dapat menggunakan git checkout <nama-branch>.
Btw bisa juga memakai extension nya di VSCode kalau mau.
Kenapa Penting?
- Memudahkan komunikasi terkait isi tujuan dari branch
- Diterapkan oleh mayoritas sehingga team hingga contributor dapat memahami dengan mudah
- Semantik, sesuai best practice
- Skalabilitas dalam team besar
- Trigger serta mempermudah build dan CI/CD Pipeline
Cheat Sheets
{type}/{description}
git branch {type}/{description}
Struktur diatas adalah contoh pembuatan branch baru, tanpa kurung kurawal. Berikut ialah penjelasannya satu per satu komponen:
-
Deskripsi
Berperan sebagai inti dari pesan perubahannya dan wajib ada. Berikut aturannya:
- Berisi tentang mendeskripsikan secara singkat, jika dibaca otomatis paham apa isi branch nya
- Lowercases (huruf kecil semua), angka diperbolehkan
- Dipisahkan dengan hypens ( - ) alias kebab-case, diperbolehkan menggunakan titik ( . ) sebagai pemisah untuk penanda versi di tipe
release/ - Dilarang double titik atau double hypens
- Singkat dan jelas
- Jika memungkinkan, tambahkan issue tiket seperti
/issue-123-new-homepage
-
Tipe
Berperan sebagai kategori perubahan dan wajib ada. Berikut aturannya:
- Singkat dan menggunakan lowercase
- Disarankan memakai kata kunci standar
Kata Kunci Standar
Kata kunci terdapat beberapa standar yang digunakan. Jika dalam kasus tertentu kata kunci standar tidak cukup, membuat kata kunci custom adalah ide bagus. Berikut daftar kata kunci standar nya.
-
feature (or feat)
Branch untuk menambahkan fitur yang berdampak pada user. Gunakan jika:
- menambahkan fitur baru
- menambahkan fungsionalitas baru
Contoh:
feature/add-new-login-systemfeat/implement-exception-pages
-
bugfix (or fix)
Branch untuk perbaikan bug atau error yang berdampak pada user. Gunakan jika:
- memperbaiki bug atau error
- memperbaiki kesalahan tujuan program
Contoh:
bugfix/fix-response-statusfix/hook-call-bug
-
hotfix
Sama seperti hotfix, tetapi khusus untuk perbaikan yang penting / urgent. Gunakan jika:
- perbaikan yang penting
Contoh:
hotfix/password-salt-pepper
-
release
Branch untuk persiapan atau untuk versi rilis. Gunakan jika:
- menambah versi atau varian baru
- mengupdate versi baru
Contoh:
release/v3.20.1
-
chore
Branch yang tidak berdampak pada program (non-code task). Gunakan jika:
- urusan maintenance & routine task
- mengupdate dependencies atau devDepencies
- mengkonfigurasi project settings (package.json. .gitignore, dll)
- update docs
- perubahan lain yang tidak termasuk ke dalam tipe-tipe sebelumnya
Contoh:
chore/update-dependencies-and-devdependencies
Ringkasan
Berikut adalah poin penting dari cheat sheet conventional branch:
| Tipe | Tujuan |
|---|---|
| feature / feat | Menambahkan fitur atau fungsi baru yang berdampak ke user |
| bugfix / fix | Memperbaiki bug, error, atau kesalahan yang berdampak ke user |
| hotfix | Memperbaiki bug, error, atau kesalahan yang cukup urgent |
| release | Branch khusus untuk perilisan |
| chore | Maintenance, non-code task, routine task, update dependencies/devdependencies, konfigurasi project, update docs. Perubahan lain yang tidak termasuk pada tipe sebelumnya |
Kesimpulan
Conventional branch pada git sangat disarankan. Jika belum terbiasa menerapkannya, terapkan secara perlahan. Tujuannya sangat bagus, untuk kemudahan koordinasi, komunikasi, hingga automatisasi. Hope you enjoy it Developers ^-^
Catatan dari penulis terkait Bootstrap CSS:
Untuk conventional branch ini, saya sendiri baru menerapkan sehingga pengalaman cukup sedikit. Selain itu, ada versi advance dari conventional branch seperti scope, ref issue, dll. Tapi itu semua opsional, yang versi disarankan dan minimalis sudah saya tulis disini.