Berkenalan dengan Git Conventional Commit

Andruw
3 min readOct 19, 2022

--

Membuat git commit message yang lebih bermakna

Photo by Roman Synkevych on Unsplash

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.

  1. feat = membuat fitur baru
  2. fix = memperbaiki bug
  3. refactor = melakukan perubahan pada fitur atau memperbaiki bug
  4. chore = melakukan pembersihan kode program yang tidak terpakai.
  5. docs = melakukan perubahan pada bagian dokumentasi kode program
  6. build = mengubah dependensi atau mengubah config build / compile
  7. 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 :

  1. Refs = menunjukan link / nomor ticket issue
  2. Reviewed-by = menunjukan nama reviewer
  3. 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.

Baca Lebih Lanjut

  1. https://www.conventionalcommits.org/en/v1.0.0/#summary
  2. https://www.conventionalcommits.org/en/v1.0.0/#specification
  3. https://www.conventionalcommits.org/en/about/

--

--

Andruw
Andruw

Written by Andruw

PHP/Laravel Developer | Web Tech Enthusiast

Responses (1)