Gitmoji Commit Convention in CONTRIBUTING.md
Document the Gitmoji commit convention in your CONTRIBUTING.md. Map emojis to change types and show how to use gitmoji-cli for consistent commit messages.
Detailed Explanation
Using Gitmoji for Commit Messages
Gitmoji uses emojis as commit type prefixes. While less formal than Conventional Commits, it makes git logs visually scannable and can be more fun for contributors.
The Format
:emoji: Description of the change
Essential Gitmojis
| Emoji | Shortcode | Meaning |
|---|---|---|
| :sparkles: | :sparkles: |
New feature |
| :bug: | :bug: |
Bug fix |
| :memo: | :memo: |
Documentation |
| :art: | :art: |
Improve structure/format of code |
| :zap: | :zap: |
Performance improvement |
| :fire: | :fire: |
Remove code or files |
| :white_check_mark: | :white_check_mark: |
Add or update tests |
| :lock: | :lock: |
Fix security issues |
| :wrench: | :wrench: |
Add or update configuration |
| :arrow_up: | :arrow_up: |
Upgrade dependencies |
| :recycle: | :recycle: |
Refactor code |
| :globe_with_meridians: | :globe_with_meridians: |
Internationalization |
Real Examples
:sparkles: Add dark mode toggle to settings page
:bug: Fix infinite loop in pagination component
:memo: Add API authentication docs
:zap: Lazy-load images on scroll
:white_check_mark: Add unit tests for user service
Using gitmoji-cli
npm install -g gitmoji-cli
gitmoji -c # Interactive commit with emoji picker
Pros and Cons
Pros: Visual git logs, easy to scan, fun to use, lower barrier than Conventional Commits.
Cons: Emojis can render differently across platforms, not natively supported by changelog generators, harder to grep in terminal.
When to Choose Gitmoji
Gitmoji works well for projects with a lighter tone, smaller teams, and no need for automated semantic versioning. If you need automated changelogs, consider Conventional Commits instead.
Use Case
A creative or community-driven project that wants commit message consistency without the formality of Conventional Commits, and where the visual appeal of emojis in git logs is valued.