Membuat git commit message yang lebih bermakna
Conventional Commit adalah salah satu format yang cukup populer digunakan untuk membuat commit message. Tujuan dari Conventional Commit adalah untuk membuat commit message yang lebih mudah dipahami. Jika membaca pada halaman dokumentasi dari Conventional Commit, spesifikasi atau formatnya terinspirasi dari Angular Commit Guidelines.
Format Penulisan
Untuk membuat commit message dengan mengikuti Conventional Commit ada format yang perlu diterapkan seperti di bawah.
<type>[optional scope]: <description>[optional body][optional footer(s)]
Pada setiap bagian memiliki fungsi yang akan dijelaskan di bawah.
Type
Prefiks type digunakan untuk menandai jenis perubahan yang terjadi pada suatu commit. Prefiks utama yang bisa digunakan adalah feat
dan fix
. Selain itu diperbolehkan untuk memakai prefiks yang lain. Berikut adalah beberapa prefiks yang cukup sering digunakan dan kegunaannya.
- feat = membuat fitur baru
- fix = memperbaiki bug
- refactor = melakukan perubahan pada fitur atau memperbaiki bug
- chore = melakukan pembersihan kode program yang tidak terpakai.
- docs = melakukan perubahan pada bagian dokumentasi kode program
- build = mengubah dependensi atau mengubah config build / compile
- test = ada perubahan pada test case (unit / feature test dan lainnya)
Description / Deskripsi singkat
Deskripsi berisi keterangan ringkas dari perubahan yang dilakukan pada kode program.
Scope (Optional) / Ruang linkup
Ruang lingkup adalah bagian yang mengalami perubahan pada kode program.
Body (Optional) / Deskripsi lanjutan
Deskripsi lanjutan berisi keterangan lebih lanjut mengenai perubahan yang dilakukan pada kode program.
Footer (Optional) / Deskripsi tambahan
Bagian footer bisa berisi keterangan tambahan yang juga penting jika diperlukan. Pada bagian footer ada format penulisan yang perlu diikuti.
<token>: <description>
atau
<token>: #<description>
Token adalah kata kunci tentang informasi penting. Berikut adalah beberapa token yang umum digunakan seperti :
- Refs = menunjukan link / nomor ticket issue
- Reviewed-by = menunjukan nama reviewer
- BREAKING CHANGE = menunjukan ada perubahan signifikan.
Untuk memberikan informasi bahwa ada perubahan yang signifikan, bisa menuliskan BREAKING CHANGE
pada footer dan atau bisa juga menuliskan tanda seru ( ! ) pada bagian setelah prefiks type sebelum tanda titik dua ( : ).
Contoh Commit Message
Berikut adalah beberapa contoh dari commit message dengan mengikuti Conventional Commit.
Commit message dengan tanda seru ( ! )
feat!: send invoice to buyer email after checkout
Commit message dengan scope dan tanda seru ( ! )
feat(email)!: send invoice to buyer email after checkout
Commit message dengan BREAKING CHANGE footer
refactor: move pdf generator from repository into helperBREAKING CHANGE: call pdf generator from PDF helper not from repo
Commit message dengan tanda seru dan BREAKING CHANGE footer
chore!: remove reach-firebase-hooks from servicesBREAKING CHANGE: use custom auth services library for auth
Commit message tanpa scope dan body
docs: update response body example for index product API
Commit message dengan scope
feat(homepage): add carousel slider for promoted products
Commit message dengan scope, multi-line body dan footer
feat(profile page): add change password button to profile pageadd change password button for user on profile page for easier access to user reset password page.Refs: #145
Penutup
Kata Penutup
Conventional Commit hingga saat ini belum bisa disebut standar baku. Namun bisa dijadikan salah satu alternatif format untuk menuliskan commit message. Dengan menggunakan format tersebut, maka diharapkan lebih mudah dalam pelacakan perubahan dan komunikasi tertulis mengenai perubahan kode program kepada developer lain. Semoga tulisan kali ini bermanfaat. Sampai jumpa di tulisan selanjutnya. Salam.