-
Notifications
You must be signed in to change notification settings - Fork 304
Git commit message guidelines
The first line of the commit message should be a short description (50 characters is the soft limit), and should skip the full stop.
The body should provide a meaningful commit message, which:
-
uses the imperative, present tense: “change” not “changed” or “changes”.
-
includes motivation for the change, and contrasts its implementation with previous behaviour.
-
Wrap lines at 72 chars or so
See
-
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
-
http://365git.tumblr.com/post/3308646748/writing-git-commit-messages
for some justifications on this strategy
An example commit message:
BUG:nnnnn Capitalized, short (50 chars) summary
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.
Write your commit message in the present tense: "Fix bug" and not "Fixed
bug." This convention matches up with commit messages generated by
commands like git merge and git revert.
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
- Use a hanging indent
In order to save a bit of space on the short summary, and to fit the 'present tense' paradigm, I propose that where we previously used FIXED: and FEATURE: we should say FIX: or NEW:. REGRESSION has never been particularly useful (as it doesn't indicate which version it was first broken in) and should be withdrawn. Not sure what I think about INTERNAL: (is there really any such thing any more?)