cd /news/developer-tools/commit-message-guidelines · home topics developer-tools article
[ARTICLE · art-9000] src=gist.github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Commit Message Guidelines

The article outlines strict formatting rules for Git commit messages, which consist of a required header (with optional scope) and optional body and footer, with each line limited to 100 characters. The header follows the format `<type>(<scope>): <subject>`, where the type must be one of specific categories like `feat`, `fix`, or `docs`, and the scope typically refers to an affected npm package name. These guidelines aim to improve readability and are used by Angular to automatically generate changelogs.

read3 min views26 publishedDec 29, 2019

<a name="commit"></a> Pedoman Commit Message #

Kami memiliki aturan yang sangat tepat tentang bagaimana pesan git commit kami dapat diformat. Ini mengarah ke pesan yang lebih mudah dibaca yang mudah diikuti ketika melihat melalui history proyek. Dan juga, kami menggunakan pesan git commit untuk menghasilkan log perubahan pada Angular.

Format Commit Message

Setiap pesan komit terdiri dari header, konten, dan catatan kaki. Judul memiliki format khusus yang mencakup jenis, cakupan, dan subjek:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

Header adalah wajib namun cakupan (scope) header adalah opsional.

Setiap baris pesan komit tidak boleh lebih dari 100 karakter! Ini memungkinkan pesan menjadi lebih mudah dibaca di GitHub serta di berbagai alat git.

Footer harus berisi referensi penutup untuk issue jika ada.

Contoh:

docs(changelog): update changelog to beta.5
fix(release): need to depend on latest rxjs and zone.js

The version in our package.json gets copied to the one we publish, and users need the latest of these.

Revert (Kembali)

Jika komit mengembalikan komit sebelumnya, komit itu harus dimulai dengan revert: diikuti oleh header komit yang dikembalikan. Di dalam konten seharusnya berbunyi: This reverts commit <hash>. , di mana hash adalah SHA dari komit yang dikembalikan.

Tipe

Harus salah satu dari yang berikut:

  • build: Perubahan yang memengaruhi sistem build atau dependensi eksternal (contoh cakupan (scope): gulp, broccoli, npm)
  • ci: Perubahan pada file konfigurasi dan skrip CI kami (contoh cakupan: Circle, BrowserStack, SauceLabs)
  • docs: perubahan Dokumentasi
  • feat: Fitur baru
  • fix: Perbaikan bug
  • perf: Perubahan kode yang meningkatkan kinerja
  • refactor: Perubahan kode yang tidak memperbaiki bug atau menambahkan fitur
  • style: Perubahan yang tidak memengaruhi makna kode (white-space, pemformatan, tidak ada titik koma, etc)
  • test: Menambahkan tes yang hilang atau mengoreksi tes yang ada

Cakupan (Scope)

Cakupannya haruslah nama paket npm yang terpengaruh (seperti yang dirasakan oleh orang yang membaca changelog yang dihasilkan dari pesan komit).

Berikut ini adalah daftar cakupan yang didukung:

  • animations
  • common
  • compiler
  • compiler-cli
  • core
  • elements
  • forms
  • http
  • language-service
  • platform-browser
  • platform-browser-dynamic
  • platform-server
  • platform-webworker
  • platform-webworker-dynamic
  • router
  • service-worker
  • upgrade
  • zone.js

Saat ini ada beberapa pengecualian untuk aturan "use package name":

  • packaging: digunakan untuk perubahan yang mengubah tata letak paket npm di semua paket kami, misalnya perubahan path, perubahan package.json dilakukan untuk semua paket, perubahan file / format d.ts, perubahan ke bundel, dll.
  • changelog: digunakan untuk memperbarui catatan rilis di CHANGELOG.md
  • docs-infra: digunakan untuk perubahan terkait docs-app (angular.io) dalam direktori /aio repo
  • ivy: digunakan untuk perubahan Ivy renderer.
  • ngcc: digunakan untuk perubahan Angular Compatibility Compiler
  • none/empty string: berguna untuk perubahan style , test dan refactor yang dilakukan di semua paket (misalnya style: add missing semicolons ) dan untuk perubahan dokumen yang tidak terkait dengan paket tertentu (misalnya docs: fix typo in tutorial ).

Subyek

Subjek berisi deskripsi perubahan yang singkat:

  • gunakan imperatif, present tense: "change" bukan "changed" atau "changes"
  • jangan menggunakan huruf besar untuk huruf pertama
  • tidak ada titik (.) di akhir

Konten

Sama seperti dalam subjek , gunakan imperatif, present tense: "change" bukan "changed" atau "changes". Konten harus memasukkan motivasi untuk perubahan dan membandingkannya dengan perilaku sebelumnya.

Catatan Kaki (Footer)

Footer harus berisi informasi apa pun tentang Melanggar Perubahan dan juga merupakan tempat untuk merujuk masalah GitHub yang dilakukan diakhir pesan komit.

Breaking Changes harus dimulai dengan kata BREAKING CHANGE: dengan spasi atau dua baris baru. Sisa pesan komit kemudian digunakan untuk ini.

Penjelasan terperinci dapat ditemukan dalam [dokumen][https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit].

── more in #developer-tools 4 stories · sorted by recency
── more on @angular 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/commit-message-guide…] indexed:0 read:3min 2019-12-29 ·