In our project, we create commits in an orderly way, using emoji for this and start the commit content with a capital letter. The commit body complements βthis commit will...". For example: ":lipstick: Fix main container height"
Text | Image | GFM shortcode* | Windows 10 picker name | When to use it |
---|---|---|---|---|
π |
π | :tada: |
party popper |
initial commit |
β¨ |
β¨ | :sparkles: |
sparkles |
when adding a new user-facing feature |
π¨ |
π¨ | :art: |
artist palette |
when improving UI |
π¦ |
π¦ | :package: |
package |
when installing dependencies |
β»οΈ |
β»οΈ | :recycle: |
recycle |
when refactoring or improving code |
π |
π | :racehorse: |
horse |
when improving performance |
π |
π | :lock: |
locked |
when improving security |
π§ |
π§ | :wrench: |
wrench |
when updating configs |
βΏ |
βΏ | :wheelchair: |
wheelchair symbol |
when improving accessibility |
π |
π | :rocket: |
rocket |
when improving dev tools |
π |
π | :pencil: |
pencil |
when writing docs (e.g. README, code comments) |
π |
π | :gem: |
gem stone |
when cutting a new release / version bump |
π |
π | :bug: |
bug |
when fixing a bug |
π₯ |
π₯ | :boom: |
collision |
when fixing a crash |
π± |
π± | :non-potable_water: |
non-potable water |
when fixing a memory leak |
π₯ |
π₯ | :fire: |
fire |
when removing code or files |
β
|
β | :white_check_mark: |
check mark button |
when adding new tests |
π |
π | :green_heart: |
green heart |
when fixing the CI build |
π |
π | :shirt: |
t-shirt |
when fixing linter warnings |
π‘ |
π‘ | :satellite: |
satellite antenna |
when adding instrumentation or metrics |
π |
π | :loud_sound: |
speaker high volume |
when adding logging |
π |
π | :mute: |
muted speaker |
when removing logging |
β¬ |
β¬οΈ | :arrow_up: |
up arrow |
when upgrading dependencies |
β¬ |
β¬οΈ | :arrow_down: |
down arrow |
when downgrading dependencies |
π |
π | :crossed_flags: |
crossed flags |
when adding an A/B test or feature flag** |
β‘ |
β‘ | :zap: |
high voltage |
when making a backwards-incompatible change** |
π§ |
π§ | :construction: |
construction |
when the change is a work in progress (do not merge)** |
In most cases, your change will fit into a pretty obvious emoji category. If it doesn't, you should think hard about whether or not you're making a clean change.
Often you can break up changes into two or more commits that each accomplish their own specific type of action. If that means you only change one tiny line or fix a simple typo in a commit, so be it! It should be a no-brainer that any given commit does exactly what it says it does β and only what is says it does. No side-effects.
In general, you should use exactly one emoji per commit message. In rare cases, you should use a second emoji (e.g. when using something like β‘ to signify that whatever you just did β π, π₯, etc. β was a breaking change).
Emoji will also depend on your client/user. A back-end API might use β¨ when adding new API endpoints, and the front-end app might use β¨ when using those endpoints to display new content.
:[EMOJI_NAME]: [THE COMMIT WILL...]
:sparkles: Add cool animations
:bug: Fix the flicker
[:]([A-Z a-z])\w+[:] [A-Z]\w.*$
RegEx example
π Fix the flicker caused by the drawer
β¨ Add a super cool animation for the drawer
β»οΈ Refactor drawer code
π₯ Remove deprecated drawer code
π¦ Install react-littera@2.1.4