Dalam pengembangan perangkat lunak, commit message sering dianggap sepele. Banyak developer hanya menulis “update”, “fix bug”, atau bahkan “wip” (work in progress). Padahal, commit message yang baik sangat penting untuk menjaga histori kode tetap jelas, mudah dipahami, dan bermanfaat untuk tim maupun diri sendiri di masa depan.
Artikel ini akan membahas tips menulis commit message Git yang rapi dan jelas, lengkap dengan format, aturan praktis, dan contoh nyata.
Mengapa Commit Message Itu Penting?
Commit message bukan sekadar catatan kecil di Git, tetapi:
- Membantu reviewer: Reviewer bisa lebih cepat memahami alasan perubahan, bukan hanya apa yang berubah.
- Mempermudah debugging: Saat mencari bug dengan
git bisect
, commit message jelas akan menghemat waktu. - Mendukung otomasi: Commit yang konsisten bisa digunakan untuk generate changelog otomatis.
- Membuat histori berguna: Riwayat proyek jadi dokumentasi evolusi fitur dan bug fix.
Format Ideal Commit Message
Salah satu format yang banyak digunakan adalah gaya Conventional Commits. Berikut contohnya:
type(scope): short summary (<=50 chars)
Longer description explaining the motivation and what changed.
Wrap lines at ~72 characters.
- Optional details or notes
- Mention related modules or files if important
Refs: #123, closes #456
BREAKING CHANGE: explain incompatible change
Penjelasan Format:
- type → kategori commit (misalnya
feat
,fix
,docs
). - scope → bagian kode/fitur yang terpengaruh (misalnya
auth
,profile
). - short summary → ringkas, ≤50 karakter, ditulis dengan gaya imperative present tense.
- body → menjelaskan mengapa perubahan dilakukan, bukan hanya apa.
- footer → referensi issue (
Closes #123
) atau catatan khusus (BREAKING CHANGE
).
Aturan Praktis Menulis Commit Message
- Gunakan gaya imperative: tulis
Add
,Fix
,Update
, bukanAdded
atauFixed
. - Subject singkat & jelas: maksimal 50 karakter.
- Body lebih detail: gunakan ~72 karakter per baris, jelaskan alasan perubahan.
- Satu commit = satu perubahan: hindari commit yang mencampur banyak fitur/bug fix sekaligus.
- Gunakan
git add -p
untuk memilih bagian kode yang relevan agar commit tetap fokus. - Referensi issue jika ada: misalnya
Closes #42
. - Gunakan footer
BREAKING CHANGE:
jika ada perubahan yang mengubah kompatibilitas.
Jenis Commit yang Disarankan
Beberapa tipe commit yang umum digunakan:
- feat → menambahkan fitur baru.
- fix → memperbaiki bug.
- docs → perubahan dokumentasi.
- style → perubahan kosmetik (whitespace, format, tidak mengubah kode).
- refactor → perombakan kode tanpa menambah fitur atau memperbaiki bug.
- perf → peningkatan performa.
- test → menambah atau memperbaiki test.
- chore → perubahan minor seperti update dependency atau konfigurasi build.
- ci → perubahan konfigurasi CI/CD.
- revert → membatalkan commit sebelumnya.
Contoh Commit Message
Buruk:
Update files
(Sangat tidak jelas, tidak tahu file apa yang diupdate dan kenapa).
Bagus (Bug Fix):
fix(auth): handle expired refresh token
When the refresh token is expired, the login flow crashed,
causing users to be redirected to a 500 page. This change
adds a check for expired tokens and forces a refresh flow.
Closes #42
Bagus (Fitur Baru):
feat(profile): add avatar upload with client validation
Allow users to upload an avatar image from the profile page.
Client-side validation restricts file size to 2MB and accepts
only png/jpg. Server stores images in S3 under /avatars/{userId}.
BREAKING CHANGE: avatar URL moved from /images to /avatars
Tools untuk Membantu Menulis Commit
- Commitizen → tool CLI untuk membuat commit sesuai format.
- Husky + commitlint → mencegah push dengan commit message yang tidak sesuai aturan.
- Git template → buat file
.git/commit-template
agar pesan commit lebih konsisten.
Checklist Sebelum Commit
- Apakah commit hanya berisi satu perubahan fokus?
- Apakah summary ≤50 karakter, jelas, dan deskriptif?
- Apakah body menjelaskan alasan perubahan?
- Apakah ada referensi issue/ticket jika relevan?
- Apakah perubahan sudah dites sebelum commit?
Kesimpulan
Commit message yang rapi bukan sekadar formalitas. Ia adalah investasi jangka panjang yang membuat kode mudah dipelihara, memudahkan debugging, mempercepat review, bahkan bisa otomatis menghasilkan changelog.
Dengan mengikuti tips di atas—mulai dari format, aturan praktis, hingga penggunaan tools—histori Git akan lebih teratur, profesional, dan berguna bagi siapa pun yang bekerja dalam proyek tersebut.