emoji | code | usage | Angular Convention |
---|---|---|---|
π | :bug: |
bug fix | fix |
π | :new: |
new feature | feat |
π₯ | :fire: |
remove feature | n/a |
π₯ | :boom: |
breaking changes | n/a |
π | :lock: |
security fix | n/a |
π¨ | :art: |
refactor | refactor |
β‘οΈ | :zap: |
performance | perf |
π― | :100: |
test | test |
π | :memo: |
doc | docs |
π€ | :zzz: |
chore | chore |
π | :tada: |
release | n/a |
π© | :poop: |
dirty | n/a |
π₯ | :egg: |
Easter eggs | n/a |
Only 13 types.
Do not need to open gitmoji.dev in the browser before writing a commit message.
Only use emojis with a short emoji code (less than five characters).
Commit message title is recommended to be less than 50 characters.
Most emojis have corresponding types in Angular convention.
Looks good and comprehensible in plain text.
Friendlier for infancy terminals and acceptable (I hope) for emoji haters.
:art:
when improving the format/structure of the code:memo:
when writing docs:penguin:
when fixing something on Linux:apple:
when fixing something on macOS:checkered_flag:
when fixing something on Windows:bug:
when fixing a bug:fire:
when removing code or files:green_heart:
when fixing the CI build:white_check_mark:
when adding tests:lock:
when dealing with security:arrow_up:
when upgrading dependencies:arrow_down:
when downgrading dependenciesMeaning | gitmoji | Atom |
---|---|---|
Performance | β‘οΈ | π |
Removing linter warnings | π¨ | π |
Angular | gitmoji |
---|---|
feat | β¨ |
fix | π |
docs | π |
style | π¨ |
refactor | β»οΈ |
perf | β‘οΈ |
test | β |
chore | π (deploy)γor π (CI) |
From the intersection, remove the following emojis:
Too long:
:penguin:, :checkered_flag:, :green_heart:, :white_check_mark:, :arrow_up:, :arrow_down:
Ambiguous:
Other:
:apple:, since both :penguin: and :checkered_flag: have been removed.
And add the following:
:zap:
for performance from gitmoji.:new:
for new features. I saw someone used this.:100:
for tests, aiming at 100% branch coverage.:zzz:
for chores. I think changes of this type is somehow boring.:boom:
for breaking changes from gitmoji.:tada:
for new release. Gitmoji uses this for project begin and π :bookmark
for release.:poop:
for dirty hacks and twisted workarounds from gitmoji (βWrite bad code that needs to be improved.β).:egg:
for Easter eggs from gitmoji.Thus, the final list is:
:art:
when improving the format/structure of the code:bug:
when fixing a bug:fire:
when removing code or files:memo:
when writing docs:new:
when adding a new feature:lock:
when fixing security problems:zap:
when improving performance:100:
when adding or updating tests.:zzz:
for chores. I think changes of this type is somehow boring.:boom:
when introducing breaking changes.:tada:
when releasing a new version.:poop:
when committing dirty hacks and twisted workarounds:egg:
when adding or updating an Easter egg.Compared to Angular Convention, I removed the following types:
style
: White-space, formatting etc. are unimportant. And most of the time, they do not deserve a separate commit.I added the following types:
:lock:
) is a special kind of bug (:bug:
). It is so important that I use a different emoji.:fire:
) belongs to refactor
by Angular Conventionβs definition: βA code change that neither fixes a bug nor adds a featureβ. However, it makes sense to assume a refactor does not introduce a breaking change of API, while removing a feature always break the API.:boom:
) may have serious effects thus deserve a dedicated emoji.:memo:
. However, some projects do not maintain a change log file in the repository, but use the annotations of git tags. Then a commit preparing a release typically only involve things such as updating some version strings. Therefore, an extra emoji (:tada:
) is added.:poop:
is similar to :boom:
, asking for special attention. These commits may be squashed or rebased on merging, if a clean history is preferred.:egg:
itself can be considered as an Easter egg of gitmoji.Use :100:
for tests. :mag:
should be considered as an alias of :100:
.
When displayed in plain text, :mag:
,
I think it is hard to recognize βmagβ is an abbreviation for βmagnifierβ.
On the other hands, I ensure all tests are passed in pre commit hook.
Thus, most of the time, changes on tests come with changes in other types,
e.g. :bug:
or :new:
.
Test only changes thus are most likely improve test coverage.
Therefore, I replace :mag:
with :100:
.
Any tools supporting this selected gitmoji set
should treat :mag:
as an alias of :100:
,
to maintain backward compatibility.
The following new emojis are added:
:mag:
for tests, and :zzz:
for chores.
I used to think that tests and build process are part of code logic. However, when reviewing changes, separation is a good thing.
:boom:
for breaking changes, and :tada:
for releases.
:poop:
for dirtiness and :egg:
for Easter eggs.
The initial version.