Commit Messages
===============
.. figure:: /_static/images/commithistory.png
:alt: Screenshot of commit history in a repository
:height: 400
:align: center
Commit history in the Kids First Dataservice repository
Commit messages are vital in being able to navigate a code base's history as
well as enable easier and more productive code reviews. There are many
resources providing best practices for commit messages:
- `Git Commits `_
- `Standard to follow when writing git commit messages `_
- `git-scm Commit Guidelines `_
Being proficient at the following git commands will greatly help to keep
commits tidy:
- `git-rebase `_
- `git-blame `_
- `git-cherry-pick `_
Here are more detailed how-tos using some of these commands with examples:
- `Rewriting History `_
- `Interactive Staging `_
We require commits to be prefixed with a single emoji that appropriately
summarizes the gist of the commit. This is helpful in allowing one to scan
through the commit log visually inside of Github or be able to perform summary
analysis inside of release notes or when analyzing git activity as a whole.
When adding an emoji to the commit message, use the colon-ated version as
opposed to the actual unicode symbol, eg: `:sparkles:`. For inspiration of what
emoji may be most appropriate, see the `gitmoji guide
`_. There is also a `gitmoji cli tool
`_ to make it easier to author
commit messages.