Skip to main content

Command Palette

Search for a command to run...

Conventional Commits: Panduan Lengkap untuk Commit Git yang Terstruktur dan Siap Otomasi

Updated
3 min read
Conventional Commits: Panduan Lengkap untuk Commit Git yang Terstruktur dan Siap Otomasi

Apa Itu Conventional Commits?

Conventional Commits adalah spesifikasi standar untuk menulis pesan commit dalam Git dengan format yang terstruktur dan konsisten.
Tujuannya adalah untuk:

  • Membuat riwayat perubahan kode lebih mudah dipahami oleh manusia maupun mesin

  • Mempercepat proses code review

  • Mendukung otomatisasi changelog, semantic release, hingga deployment

Dengan template yang jelas, Conventional Commits sangat membantu tim software engineer, terutama dalam proyek yang berskala besar.

Mengapa Conventional Commits Penting dalam Version Control?

Banyak tim mengalami kendala seperti:

  • Commit message yang tidak jelas dan sulit dilacak

  • Sulit membuat changelog manual

  • Rilis versi (major, minor, patch) tidak konsisten

Dengan Conventional Commits + Semantic Versioning (SemVer), semua proses itu bisa diotomatisasi.

Format Standard Conventional Commits (Cara Menulis Yang Benar)

Format umum Conventional Commits:

<type>[optional scope]: <deskripsi singkat>

[optional body]

[optional footer(s)]

Contoh commit yang benar:

feat(auth): add JWT-based user login

User can now log in using email and password.
JWT token valid for 24 hours.

BREAKING CHANGE: legacy login endpoint has been removed.

Tipe Commit yang Didukung Conventional Commits

Berikut ini daftar type yang umum digunakan dalam Conventional Commits Git workflow:

TipeDeskripsiMemicu Rilis?
featPenambahan fiturMinor
fixPerbaikan bugPatch
docsPembaruan dokumentasiTidak
stylePerubahan format/tata gaya kodeTidak
refactorPerubahan kode internal tanpa mengubah fungsionalitasTidak
testMenambah/memperbaiki unit testTidak
choreUpdate build/dependenciesTidak
perfPeningkatan performaPatch
BREAKING CHANGEPerubahan besar (breaking)Major

Menambahkan Scope pada Commit (Opsional Tapi Bermanfaat)

Scope digunakan untuk menunjukkan area kode yang terpengaruh.

Contoh:

feat(api): add rate limiting
fix(ui): correct button alignment

Scope sangat membantu jika kamu bekerja di proyek dengan banyak modul atau monorepo.

Cara Memaksa Format Conventional Commits (Linting Otomatis)

Untuk menjaga konsistensi, kamu bisa memaksa commit message agar sesuai format dengan tools seperti:

  • commitlint

  • husky

  • Commitizen

Setup commitlint + husky di Node.js

npm install --save-dev @commitlint/{config-conventional,cli} husky

Buat file .commitlintrc.js:

module.exports = {
  extends: ["@commitlint/config-conventional"]
};

Aktifkan commit message hook:

npx husky install
npx husky add .husky/commit-msg "npx commitlint --edit $1"

Dengan setup ini, commit yang melanggar aturan akan ditolak.

Integrasi dengan Semantic Versioning dan CI/CD Otomatis

Karena format commit dapat dipahami oleh mesin, berbagai otomatisasi dapat dilakukan berdasarkan tipe commit, seperti:

  • Menentukan rilis versi secara otomatis:

    • feat: → rilis minor

    • fix: → rilis patch

    • BREAKING CHANGE: → rilis major

  • Membuat changelog otomatis

  • Men-trigger deployment ke staging/production

⛓️ Tools populer untuk ini:

  • semantic-release

  • standard-version

Best Practices dalam Menggunakan Conventional Commits

✅ Gunakan deskripsi singkat yang jelas (< 50 karakter)
✅ Tambahkan body jika perlu jelaskan “kenapa” perubahan dilakukan
✅ Tulis footer hanya jika commit terkait issue tracker (misalnya Closes #42)
✅ Konsisten menggunakan prefix seperti feat:, fix:, refactor:
✅ Setiap pull request mengandung satu atau beberapa commit terstruktur

Kesimpulan

Conventional Commits membantu developer menulis commit yang terstruktur, mudah dilacak, dan siap diotomatisasi.

Dengan memadukan commit yang konsisten + git workflow + semantic versioning, kamu akan mendapatkan:

🚀 Riwayat kode lebih bersih
🛠️ Proses rilis lebih cepat dan minim error
📊 Changelog otomatis
🤝 Kolaborasi tim lebih mudah

“Commit yang baik adalah investasi di masa depan.”

Mulailah terapkan Conventional Commits hari ini pada proyekmu.
Install commitlint atau gunakan Commitizen untuk mempermudah penulisan commit interaktif.

More from this blog

Codenitif

13 posts

Unlock Your Cognitive Coding Power.