styleguide-git-commit-message

/sBin/StyleGuide/Git/CommitMessage

View on GitHub

Git & Unicorn

Powered by Emojis! GitHub contributors GitHub stars license

Git Commit Message StyleGuide

TOC

About

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.

Summary of the reasons for these conventions:

Commit Message Format

<type>(<scope>): <subject>

<body>

<footer>

Message Subject(first line)

Message Body

Notes

Suggested Emojis

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 @FIXMEComment 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)

Tools

Fun Emoji Usages

Contributing

Ask to Be Creative!

To add a new Emoji to the list: Create an Issue & Send a PR.

License

The Code is licensed under the MIT License.