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 SubjectSHOULD 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 T27orRef T27, T56orFixes T8. - Total Characters of the Subject LineMUST 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
@XXXComment Tags.
| Emoji | Raw Emoji Code | Description |
|---|---|---|
| 🎨 | :art: | when improving the format/structure of the code |
| 💦 | :sweat_drops: | When removing whitespaces or deadcodes |
| 📰 | :newspaper: | when creating a new file |
| 📝 | :pencil: | when performing minor changes/fixing the code or language |
| 🐎 | :racehorse: | when improving performance |
| 📚 | :books: | when writing docs |
| 🐛 | :bug: | when reporting a bug, with @FIXMEComment Tag |
| 🚑 | :ambulance: | when fixing a bug |
| 🔥 | :fire: | when removing code or files, maybe with @CHANGED Comment Tag |
| 🚜 | :tractor: | when change file structure. Usually together with 🎨 |
| ☔ | :umbrella: | when adding tests |
| 🔬 | :microscope: | when adding code coverage |
| 💚 | :green_heart: | when fixing the CI build |
| 🔒 | :lock: | when dealing with security |
| ⬆️ | :arrow_up: | when upgrading dependencies |
| ⬇️ | :arrow_down: | when downgrading dependencies |
| 💉 | :syringe: | when adding devtools to boost productivity |
| ⏩ | :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 |
| 🏦 | :bank: | Generic Database specific (Migrations, Scripts, Extensions, ...) |
| 🐳 | :whale: | Docker Configuration |
| 🤝 | :handshake: | when Merge files |
Ask to Be Creative!
There is Also a nifty CLI tool to aid in standardizing commit messages based on this document, thanks to @jakeasmith.