Conventional Commits
write cleaner, meaningful commit messages.
Pernahkah kamu merasa frustrasi saat membaca riwayat perubahan kode yang isinya hanya seperti hutan belantara tanpa petunjuk?
Coba bayangkan skenario ini: Kamu sedang menelusuri bug kritis di production jam 2 pagi. Mata sudah sepat, kopi sudah habis, dan saat membuka git log, yang kamu temukan adalah mahakarya abstrak seperti ini:
textcommit 3a1f9d2 Author: handikatriarlan <handikaarlan@gmail.com> Date: Fri Dec 27 23:55:00 2024 fix bug lagi commit 1b2c3d4 Author: handikatriarlan <handikaarlan@gmail.com> Date: Fri Dec 27 23:40:00 2024 kayaknya udah bener commit 9e8f7a6 Author: handikatriarlan <handikaarlan@gmail.com> Date: Fri Dec 27 23:30:00 2024 final fix bismillah
Jika ini terasa familiar, tos dulu. Kita semua pernah ada di fase itu. Fase di mana commit message hanyalah formalitas agar bisa git push.
Tapi, sebagai seniman kode yang peduli dengan kesehatan mental rekan tim (dan diri sendiri di masa depan), sudah saatnya kita naik kelas. Mari berkenalan dengan Conventional Commits.
Apa Itu Conventional Commits?
Bayangkan jika setiap pesan commit memiliki struktur yang baku, mudah dibaca mesin, dan yang terpenting: mudah dipahami manusia. Itulah esensi dari Conventional Commits.
Format dasarnya sangat sederhana nan elegan:
<tipe>(<lingkup>): <deskripsi singkat yang bermakna>
Dengan format ini, kita tidak hanya menulis kode, tapi juga bercerita tentang apa yang terjadi pada kode tersebut.
Kamus Tipe Commit
Agar tidak bingung harus pakai tipe yang mana, berikut adalah panduan praktis yang bisa kamu jadikan contekan sehari-hari:
| Tipe | Makna & Kegunaan | Contoh Penggunaan |
|---|---|---|
feat | Menambahkan fitur baru | feat(auth): login dengan Google |
fix | Memperbaiki bug | fix(cart): hitungan total belanja minus |
docs | Perubahan dokumentasi | docs: update panduan instalasi |
style | Format (spasi, indentasi) | style: rapikan indentasi file css |
refactor | Perbaikan kode tanpa ubah fungsi | refactor(user): sederhanakan logika validasi |
test | Menambah/edit testing | test: tambah unit test pembayaran |
chore | Tugas rutin (deps, config) | chore: upgrade next.js ke v15 |
Mengapa Harus Repot-Repot?
Mungkin kamu bertanya, "Kenapa sih harus seribet ini? Kan yang penting kodenya jalan?"
Nah, di sinilah bedanya coder biasa dengan software engineer profesional. Menggunakan Conventional Commits memberikan superpower tersembunyi:
-
Navigasi Secepat Kilat Saat mencari kapan bug diperbaiki atau fitur ditambahkan, kamu cukup filter berdasarkan tipenya. Sat set wat wet.
-
Otomatisasi Changelog Malas nulis changelog manual rilis demi rilis? Alat bantu bisa otomatis men-generate daftar perubahan yang rapi hanya dengan membaca tipe commit kamu.
-
Konteks yang Jelas Lingkup (scope) memberi tahu bagian mana yang berubah tanpa harus membuka file-nya.
fix(api)jelas beda penanganannya denganfix(ui).
"Code is read much more often than it is written." — Guido van Rossum
Pesan commit adalah bagian dari kode itu sendiri. Ia adalah dokumentasi hidup yang menjelaskan mengapa perubahan itu ada.
Mulai Langkah Kecil Hari Ini
Tidak perlu langsung sempurna. Mulailah dari hal kecil:
- Ganti kebiasaan nulis
fixdoang denganfix: perbaiki tombol yang tidak bisa diklik. - Ganti
updatedenganfeat: tambahkan halaman profil user.
Percayalah, "Diri Kamu di Masa Depan" akan sangat berterima kasih pada "Diri Kamu Hari Ini" yang sudah mau menulis pesan commit dengan rapi.
Jadi, sudah siap untuk membuat riwayat Git kamu seindah puisi?