Commit Messages
Commit messages are pretty much the primary mechanism that developers communicate to each other, and so the goal of your message should be to communicate your changes, and to help those attempting to debug your code.
Give a subject line
This subject line should give a brief note of WHAT you changed, e.g.
Adds reset button to post form
Add your project to the subject
If your commit is part of a logical sub project, add it to your subject, e.g.
PHP 7.2 compatibility: Changing out sizeof for strlen
Use your best judgement, but think about how to find relevant commits when scanning a change log.
Explain why
Unless immediately obvious, because the "why" part was included in the subject e.g.
Updating array format to match style guidelines
After a blank line after the subject, you should normally include a "why" part, so for example:
Adds reset button to post form
Users often had to manually reset the contents of a form, so a simple reset was added
for convenience.
Explain the problem you're fixing
Mostly you're trying to fix something, so again, briefly explain the problem and the solution you came up with, e.g.
Adding the current user UUID to JSON object
The code was previously not returning the current user UUID, which meant that the
subsequent JavaScript needed to make a separate lookup, which was inefficient.
The solution was to return the UUID as part of the original request, and update
the calling code to make use of it.
Say HOW you fixed it
Where appropriate, you should explain the how in your commit, e.g.
Adding the current user UUID to JSON object
The code was previously not returning the current user UUID, which meant that the
subsequent JavaScript needed to make a separate lookup, which was inefficient.
The solution was to return the UUID as part of the original request, and update
the calling code to make use of it. This was achieved by pulling the UUID out of
the user object stored in the current session.
Reference tickets and changes
If you're referencing tickets, be sure to mention them, either in the body of the commit or at the end, e.g.
Adding the current user UUID to JSON object
The code was previously not returning the current user UUID, which meant that the
subsequent JavaScript needed to make a separate lookup, which was inefficient.
The solution was to return the UUID as part of the original request, and update
the calling code to make use of it. This was achieved by pulling the UUID out of
the user object stored in the current session.
Fixes #2345
And if a problem was introduced by a specific change request, mention that in your message as well.
Misc guidelines
- If your subject line contains the word "and", your commit is probably too big. Split it.
- Don't just substitute a description with a link, although links are handy for context.
- With all this in mind, use common sense, and think "legibility"
Credits
This document borrows heavily on the WordPress commit message guidelines, so if there's something missing here, definitely follow their guidelines.