{"slug": "commit-message-guidelines", "title": "Commit Message Guidelines", "summary": "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.", "body_md": "## <a name=\"commit\"></a> Pedoman Commit Message\n\nKami 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**.\n\n### Format Commit Message\nSetiap pesan komit terdiri dari **header**, **konten**, dan **catatan kaki**. Judul memiliki format khusus yang mencakup **jenis**, **cakupan**, dan **subjek**:\n\n```\n<type>(<scope>): <subject>\n<BLANK LINE>\n<body>\n<BLANK LINE>\n<footer>\n```\n\n**Header** adalah wajib namun cakupan (scope) header adalah opsional.\n\nSetiap baris pesan komit tidak boleh lebih dari 100 karakter! Ini memungkinkan pesan menjadi lebih mudah dibaca di GitHub serta di berbagai alat git.\n\nFooter harus berisi [referensi penutup untuk issue](https://help.github.com/articles/closing-issues-via-commit-messages/) jika ada.\n\nContoh:\n```\ndocs(changelog): update changelog to beta.5\n```\n```\nfix(release): need to depend on latest rxjs and zone.js\n\nThe version in our package.json gets copied to the one we publish, and users need the latest of these.\n```\n\n### Revert (Kembali)\nJika 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.\n\n### Tipe\nHarus salah satu dari yang berikut:\n\n* **build**: Perubahan yang memengaruhi sistem build atau dependensi eksternal (contoh cakupan (scope): gulp, broccoli, npm)\n* **ci**: Perubahan pada file konfigurasi dan skrip CI kami (contoh cakupan: Circle, BrowserStack, SauceLabs)\n* **docs**: perubahan Dokumentasi\n* **feat**: Fitur baru\n* **fix**: Perbaikan bug\n* **perf**: Perubahan kode yang meningkatkan kinerja\n* **refactor**: Perubahan kode yang tidak memperbaiki bug atau menambahkan fitur\n* **style**: Perubahan yang tidak memengaruhi makna kode (white-space, pemformatan, tidak ada titik koma, etc)\n* **test**: Menambahkan tes yang hilang atau mengoreksi tes yang ada\n\n### Cakupan (Scope)\nCakupannya haruslah nama paket `npm` yang terpengaruh (seperti yang dirasakan oleh orang yang membaca changelog yang dihasilkan dari pesan komit).\n\nBerikut ini adalah daftar cakupan yang didukung:\n\n* **animations**\n* **common**\n* **compiler**\n* **compiler-cli**\n* **core**\n* **elements**\n* **forms**\n* **http**\n* **language-service**\n* **platform-browser**\n* **platform-browser-dynamic**\n* **platform-server**\n* **platform-webworker**\n* **platform-webworker-dynamic**\n* **router**\n* **service-worker**\n* **upgrade**\n* **zone.js**\n\nSaat ini ada beberapa pengecualian untuk aturan \"use package name\":\n\n* **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.\n* **changelog**: digunakan untuk memperbarui catatan rilis di CHANGELOG.md\n* **docs-infra**: digunakan untuk perubahan terkait docs-app (angular.io) dalam direktori /aio repo\n* **ivy**: digunakan untuk perubahan [Ivy renderer](https://github.com/angular/angular/issues/21706).\n* **ngcc**: digunakan untuk perubahan [Angular Compatibility Compiler](./packages/compiler-cli/ngcc/README.md)\n* 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` ).\n\n### Subyek\nSubjek berisi deskripsi perubahan yang singkat:\n\n* gunakan imperatif, present tense: \"change\" bukan \"changed\" atau \"changes\"\n* jangan menggunakan huruf besar untuk huruf pertama\n* tidak ada titik (.) di akhir\n\n### Konten\nSama seperti dalam **subjek** , gunakan imperatif, present tense: \"change\" bukan \"changed\" atau \"changes\". Konten harus memasukkan motivasi untuk perubahan dan membandingkannya dengan perilaku sebelumnya.\n\n### Catatan Kaki (Footer)\nFooter harus berisi informasi apa pun tentang **Melanggar Perubahan** dan juga merupakan tempat untuk merujuk masalah GitHub yang dilakukan **diakhir** pesan komit.\n\n**Breaking Changes** harus dimulai dengan kata `BREAKING CHANGE:` dengan spasi atau dua baris baru. Sisa pesan komit kemudian digunakan untuk ini.\n\nPenjelasan terperinci dapat ditemukan dalam [dokumen][https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit].", "url": "https://wpnews.pro/news/commit-message-guidelines", "canonical_source": "https://gist.github.com/nyancodeid/63f19941c81252bb0cca9c14497cf9f7", "published_at": "2019-12-29 17:32:17+00:00", "updated_at": "2026-05-22 13:48:03.167555+00:00", "lang": "en", "topics": ["developer-tools", "open-source"], "entities": ["Angular", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/commit-message-guidelines", "markdown": "https://wpnews.pro/news/commit-message-guidelines.md", "text": "https://wpnews.pro/news/commit-message-guidelines.txt", "jsonld": "https://wpnews.pro/news/commit-message-guidelines.jsonld"}}