/sBin/StyleGuide/Git/CommitMessage
&
This is an attempt to standardize the format of commit messages, for the sake of uniformity in git log, best practices for writing commit messages & fun!
Using emojis at the beginning of commit messages, other than being fun, provides a simple way to indicate the intention of that commit, an ease for the eyes when browsing/reviewing git log. It's also a simple measure of the fact that how much that commit is focused on a single purpose, which is a good practice.
If these rules and/or using emojis is an overkill for your productivity or simply losing its purposes, please tailor them to your needs or don't use them.
<type>(<scope>): <subject>
<body>
<footer>
<subject>
.<type>
to identify what type of changes introduced in this commit; Allowed <type>
keywords:
<scope>
to identify which component this <type>
is related to; Example <scope>
values:
<scope>
can also be empty (e.g. if the change is a global or difficult to assign to a single component), in which case the parentheses are omitted.Issue #27
, Ref T27
or Ref T27, T56
or Fixes T8
.Closes #27, #56
.<body>
.Fixes
or Resolves
will mark them as closed automatically! For more information about automatic issue closing using ketwords see their documentation(linked above).<footer>
.:emoji:
) is counted as one character!.@XXX
Comment Tags.Emoji | Raw Emoji Code | Description |
---|---|---|
:art: | :art: |
when improving the format/structure of the code |
:newspaper: | :newspaper: |
when creating a new file |
:pencil: | :pencil: |
when performing minor changes/fixing the code or language |
:racehorse: | :racehorse: |
when improving performance |
:books: | :books: |
when writing docs |
:bug: | :bug: |
when reporting a bug, with @FIXME Comment Tag |
:ambulance: | :ambulance: |
when fixing a bug |
:penguin: | :penguin: |
when fixing something on Linux |
:apple: | :apple: |
when fixing something on Mac OS |
:checkered_flag: | :checkered_flag: |
when fixing something on Windows |
:fire: | :fire: |
when removing code or files, maybe with @CHANGED Comment Tag |
:tractor: | :tractor: |
when change file structure. Usually together with :art: |
:hammer: | :hammer: |
when refactoring code |
:umbrella: | :umbrella: |
when adding tests |
:microscope: | :microscope: |
when adding code coverage |
:green_heart: | :green_heart: |
when fixing the CI build |
:lock: | :lock: |
when dealing with security |
:arrow_up: | :arrow_up: |
when upgrading dependencies |
:arrow_down: | :arrow_down: |
when downgrading dependencies |
:fast_forward: | :fast_forward: |
when forward-porting features from an older version/branch |
:rewind: | :rewind: |
when backporting features from a newer version/branch |
:shirt: | :shirt: |
when removing linter/strict/deprecation warnings |
:lipstick: | :lipstick: |
when improving UI/Cosmetic |
:wheelchair: | :wheelchair: |
when improving accessibility |
:globe_with_meridians: | :globe_with_meridians: |
when dealing with globalization/internationalization/i18n/g11n |
:construction: | :construction: |
WIP(Work In Progress) Commits, maybe with @REVIEW Comment Tag |
:gem: | :gem: |
New Release |
:egg: | :egg: |
New Release with Python egg |
:ferris_wheel: | :ferris_wheel: |
New Release with Python wheel package |
:bookmark: | :bookmark: |
Version Tags |
:tada: | :tada: |
Initial Commit |
:speaker: | :speaker: |
when Adding Logging |
:mute: | :mute: |
when Reducing Logging |
:sparkles: | :sparkles: |
when introducing New Features |
:zap: | :zap: |
when introducing Backward-InCompatible Features, maybe with @CHANGED Comment Tag |
:bulb: | :bulb: |
New Idea, with @IDEA Comment Tag |
:snowflake: | :snowflake: |
changing Configuration, Usually together with :penguin: or :ribbon: or :rocket: |
:ribbon: | :ribbon: |
Customer requested application Customization, with @HACK Comment Tag |
:rocket: | :rocket: |
Anything related to Deployments/DevOps |
:elephant: | :elephant: |
PostgreSQL Database specific (Migrations, Scripts, Extensions, ...) |
:dolphin: | :dolphin: |
MySQL Database specific (Migrations, Scripts, Extensions, ...) |
:leaves: | :leaves: |
MongoDB Database specific (Migrations, Scripts, Extensions, ...) |
:bank: | :bank: |
Generic Database specific (Migrations, Scripts, Extensions, ...) |
:whale: | :whale: |
Docker Configuration |
:handshake: | :handshake: |
when Merge files |
:cherries: | :cherries: |
when Commit Arise from one or more Cherry-Pick Commit(s) |
To add a new Emoji to the list: Create an Issue & Send a PR.
The Code is licensed under the MIT License.