All Git Commit Messages MUST meet with this Text Format:
:emoji1: :emoji2: Subject
(Only One NewLine)
Message Body
(Only One NewLine)
Ref <###>
- Capitalize the Subject.
- Do not end the Subject line with a period.
- Message Subject SHOULD Begin with at-least One Emoji(see below for list of Suggested Emojis).
- Message Body SHOULD End with at-least One GitHub Issue/Phabricator Task ID Reference, Ex.
Issue #27
,Ref T27
orRef T27, T56
orFixes T8
. - Total Characters of the Subject Line MUST be Less than or Equal to 50 Chars Long.
- Wrap the Message body at 72 characters.
- Use Valid MarkDown format in Message Body.
- Use the Present Tense ("Add feature" not "Added feature").
- Use the Imperative Mood ("Move cursor to..." not "Moves cursor to...").
- Use the Message body to explain what and why vs. how.
- All WIP(Work In Progress) Commits MUST have the WIP Emoji(see below).
- All WIP Commits Should be Avoided!.
- Tasks with Commits in
Fixes T###
Format will be Automatically Closed as Resolved!. - There is a Space Character between Multiple Emojis!.
- There is NO New-Line After the Task ID Reference Line.
- Every Raw Emoji Text(
:emoji:
) is Counted as One Char!. - See ToDo Grammar StyleGuide for more Information on
@XXX
Comment Tags.
Emoji | Raw Emoji Code | Description |
---|---|---|
🎨 | :art: |
when improving the format/structure of the code |
📝 | :pencil: |
when performing minor changes/fixing the code or language |
🐎 | :racehorse: |
when improving performance |
📚 | :books: |
when writing docs |
🐛 | :bug: |
when reporting a bug, with @FIXME Comment Tag |
🚑 | :ambulance: |
when fixing a bug |
🐧 | :penguin: |
when fixing something on Linux |
🍎 | :apple: |
when fixing something on Mac OS |
🏁 | :checkered_flag: |
when fixing something on Windows |
🔥 | :fire: |
when removing code or files, maybe with @CHANGED Comment Tag |
🚜 | :tractor: |
when change file structure. Usually together with 🎨 |
☔ | :umbrella: |
when adding tests |
💚 | :green_heart: |
when fixing the CI build |
🔒 | :lock: |
when dealing with security |
⬆️ | :arrow_up: |
when upgrading dependencies |
⬇️ | :arrow_down: |
when downgrading dependencies |
⏩ | :fast_forward: |
when forward-porting features from an older version/branch |
⏪ | :rewind: |
when backporting features from a newer version/branch |
👕 | :shirt: |
when removing linter/strict/deprecation warnings |
💄 | :lipstick: |
when improving UI/Cosmetic |
♿ | :wheelchair: |
when improving accessibility |
🌐 | :globe_with_meridians: |
when dealing with globalization/internationalization/i18n/g11n |
🚧 | :construction: |
WIP(Work In Progress) Commits, maybe with @REVIEW Comment Tag |
💎 | :gem: |
New Release |
🔖 | :bookmark: |
Version Tags |
🎉 | :tada: |
Initial Commit |
🔈 | :speaker: |
when Adding Logging |
🔇 | :mute: |
when Reducing Logging |
✨ | :sparkles: |
when introducing New Features |
⚡ | :zap: |
when introducing Backward-InCompatible Features, maybe with @CHANGED Comment Tag |
💡 | :bulb: |
New Idea, with @IDEA Comment Tag |
❄️ | :snowflake: |
changing Configuration, Usually together with 🐧 or 🎀 or 🚀 |
🎀 | :ribbon: |
Customer requested application Customization, with @HACK Comment Tag |
🚀 | :rocket: |
Anything related to Deployments/DevOps |
🐘 | :elephant: |
PostgreSQL Database specific (Migrations, Scripts, Extensions, ...) |
🐬 | :dolphin: |
MySQL Database specific (Migrations, Scripts, Extensions, ...) |
🏦 | :bank: |
Generic Database specific (Migrations, Scripts, Extensions, ...) |
Ask to Be Creative!
There is Also a nifty CLI tool to aid in standardizing commit messages based on this document, thanks to @jakeasmith.