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 72 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 |
π | :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 |
β | :white_check_mark: |
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 |
π | :shirt: |
when removing linter/strict/deprecation warnings |
π | :lipstick: |
when improving UI/Cosmetic |
π§ | :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 |
Ask to Be Creative!
There is Also a nifty CLI tool to aid in standardizing commit messages based on this document, thanks to @jakeasmith.