Skip to content

Instantly share code, notes, and snippets.

@mrliptontea
Created March 5, 2019 11:00
Show Gist options
  • Save mrliptontea/4e594492147d71ccc69571ae16dd0e7c to your computer and use it in GitHub Desktop.
Save mrliptontea/4e594492147d71ccc69571ae16dd0e7c to your computer and use it in GitHub Desktop.
Writing good commit messages

Good commit messages serve at least three important purposes:

  • To speed up the reviewing process.
  • To find out what changed in a range of commits (e.g. for a release note).
  • To help the future maintainers, say five years into the future, to find out why a particular change was made to the code or why a specific feature was added.

Structure your commit message like this:

From: https://git-scm.com/book/ch5-2.html

Short (50 chars or less) summary of changes

More detailed explanatory text, if necessary.  Wrap it to
about 72 characters or so.  In some contexts, the first
line is treated as the subject of an email and the rest of
the text as the body.  The blank line separating the
summary from the body is critical (unless you omit the body
entirely); tools like rebase can get confused if you run
the two together.

Further paragraphs come after blank lines.

  - Bullet points are okay, too

  - Typically a hyphen or asterisk is used for the bullet,
    preceded by a single space, with blank lines in
    between, but conventions vary here

Example

An example of a good commit message:

Redirect user to the requested page after login

https://trello.com/path/to/relevant/card

Users were being redirected to the home page after login, which is less
useful than redirecting to the page they had originally requested before
being redirected to the login form.

DO

  • Write the summary line and description of what you have done in the imperative mode, that is as if you were commanding someone. Start the line with "Fix", "Add", "Change" instead of "Fixed", "Added", "Changed".
  • Always leave the second line blank.
  • Line break the commit message (to make the commit message readable without having to scroll horizontally in gitk).

DON'T

  • Don't end the summary line with a period - it's a title and titles don't end with a period.

Tips

  • Just like with the Single Responsibility Principle in your code, if it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes. Split it up into several commits using git add -p or using a GUI such as GitHub desktop.
  • Typing multiline commit messages isn't the most pleasant thing to do via the command line, so tell git to use your editor when doing git commit. Find out how to here: https://help.github.com/en/articles/associating-text-editors-with-git.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment