Case of commit messages #12

Closed
opened 2026-02-17 11:31:42 -06:00 by GiteaMirror · 15 comments
Owner

Originally created by @dijonkitchen on GitHub (Nov 23, 2017).

Originally assigned to: @dijonkitchen on GitHub.

Why does the spec have lowercase as the default? I figure as a title for a commit, it'd be uppercase.

Reference:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

Originally created by @dijonkitchen on GitHub (Nov 23, 2017). Originally assigned to: @dijonkitchen on GitHub. Why does the spec have lowercase as the default? I figure as a title for a commit, it'd be uppercase. Reference: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
GiteaMirror added the support label 2026-02-17 11:31:42 -06:00
Author
Owner

@stevemao commented on GitHub (Nov 23, 2017):

It was defined by the angular convention spec.

@stevemao commented on GitHub (Nov 23, 2017): It was defined by the angular convention spec.
Author
Owner

@dijonkitchen commented on GitHub (Nov 27, 2017):

I looked at the Angular commit convention but couldn't find a reason why though. The only thing I could guess would be that it's easier to parse, but lowercase looks off as the start of all the Subject lines.

@dijonkitchen commented on GitHub (Nov 27, 2017): I looked at the [Angular commit convention](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#) but couldn't find a reason why though. The only thing I could guess would be that it's easier to parse, but lowercase looks off as the start of all the Subject lines.
Author
Owner

@stevemao commented on GitHub (Nov 28, 2017):

I guess it's just easy to type. no particular reason. But good to have consistency.

@stevemao commented on GitHub (Nov 28, 2017): I guess it's just easy to type. no particular reason. But good to have consistency.
Author
Owner

@dijonkitchen commented on GitHub (Jan 26, 2018):

I figure the best practice if we're setting a standard is capitalized.

For example:

Build(npm): Upgrade npm version
@dijonkitchen commented on GitHub (Jan 26, 2018): I figure the best practice if we're setting a standard is capitalized. For example: ``` Build(npm): Upgrade npm version ```
Author
Owner

@bcoe commented on GitHub (Mar 16, 2018):

@stevemao @dijonkitchen joining this conversation late ... could we make our default parser for conventional commit messages not care about case? seems like it's not something worth being opinionated about.

@bcoe commented on GitHub (Mar 16, 2018): @stevemao @dijonkitchen joining this conversation late ... could we make our default parser for conventional commit messages not care about case? seems like it's not something worth being opinionated about.
Author
Owner

@dijonkitchen commented on GitHub (Mar 16, 2018):

Sure, that makes sense to me! Though I think uppercase looks better for readability, the parser for the changelog should be agnostic!

@dijonkitchen commented on GitHub (Mar 16, 2018): Sure, that makes sense to me! Though I think uppercase looks better for readability, the parser for the changelog should be agnostic!
Author
Owner

@stevemao commented on GitHub (Mar 18, 2018):

I'm not opposing anyone here :) I see more people typing lower cased sentences in the commit messages in general. Also I've always wanted tools like conventional-changelog auto capitalise the first letter in a sentence.

@stevemao commented on GitHub (Mar 18, 2018): I'm not opposing anyone here :) I see more people typing lower cased sentences in the commit messages in general. Also I've always wanted tools like conventional-changelog auto capitalise the first letter in a sentence.
Author
Owner

@damianopetrungaro commented on GitHub (May 2, 2018):

I prefer lowercase too, do we need something for this?

@damianopetrungaro commented on GitHub (May 2, 2018): I prefer lowercase too, do we need something for this?
Author
Owner

@hutson commented on GitHub (Jul 16, 2018):

My two cents:

  • Parser should not care.
  • Capitalization should be enforceable per-project through commitlint.
  • Format of changelogs should be opinionated/consistent.
  • commitlint defaults should align with default of Conventional Commits.

As for whether the type, and first word of the summary, should be capitalized, I have no opinion on one way or another. Can someone do a quick grep over GitHub to find what's commonly used?

@hutson commented on GitHub (Jul 16, 2018): My two cents: * Parser should not care. * Capitalization should be enforceable per-project through `commitlint`. * Format of changelogs should be opinionated/consistent. * `commitlint` defaults should align with default of Conventional Commits. As for whether the type, and first word of the summary, should be capitalized, I have no opinion on one way or another. Can someone do a quick grep over GitHub to find what's commonly used?
Author
Owner

@hutson commented on GitHub (Aug 19, 2018):

To move this forward, should we add an item to the FAQ that acknowledges that any casing may be used?

@hutson commented on GitHub (Aug 19, 2018): To move this forward, should we add an item to the _FAQ_ that acknowledges that any casing may be used?
Author
Owner

@damianopetrungaro commented on GitHub (Aug 20, 2018):

@hbetts Yup, totally agree with it!
@dijonkitchen do you want to work on it?

@damianopetrungaro commented on GitHub (Aug 20, 2018): @hbetts Yup, totally agree with it! @dijonkitchen do you want to work on it?
Author
Owner

@dijonkitchen commented on GitHub (Aug 20, 2018):

Boom! ☝️

@dijonkitchen commented on GitHub (Aug 20, 2018): Boom! ☝️
Author
Owner

@mlindner commented on GitHub (Sep 17, 2019):

This is utterly broken. Please study https://chris.beams.io/posts/git-commit/#capitalize

@mlindner commented on GitHub (Sep 17, 2019): This is utterly broken. Please study https://chris.beams.io/posts/git-commit/#capitalize
Author
Owner

@annanyearian commented on GitHub (Jan 27, 2023):

  1. Capitalize the subject line

Even trying to follow existing git best practices it's not clear to me if the subject line includes the type and scope like some people here suggest. If you treat type and scope as technical constants then the initial capital should be at start of the sentence after the colon.

Fix(Reporting): Change CIFS read failure code to correct READ_ERR
Fix(reporting): Change CIFS read failure code to correct READ_ERR
fix(reporting): Change CIFS read failure code to correct READ_ERR
fix(reporting): change cifs read failure code to correct READ_ERR

Having acronyms lowercase looks strange, but so does starting a sentence with lowercase change. The original angular does thankfully have acronyms and proper nouns capitalised. Currently I use 2nd line above, but thinking to change to 3.

@annanyearian commented on GitHub (Jan 27, 2023): > 3. Capitalize the subject line Even trying to follow existing git best practices it's not clear to me if the subject line includes the type and scope like some people here suggest. If you treat type and scope as technical constants then the initial capital should be at start of the sentence after the colon. > Fix(Reporting): Change CIFS read failure code to correct READ_ERR > Fix(reporting): Change CIFS read failure code to correct READ_ERR > fix(reporting): Change CIFS read failure code to correct READ_ERR > fix(reporting): change cifs read failure code to correct READ_ERR Having acronyms lowercase looks strange, but so does starting a sentence with lowercase change. The original angular does thankfully have acronyms and proper nouns capitalised. Currently I use 2nd line above, but thinking to change to 3.
Author
Owner

@Arcitec commented on GitHub (Aug 16, 2025):

There's only one thing that makes sense to me: Putting the lowercase Conventional Commit tag at the start and then writing a normal best-practices, capitalized commit message after that.

Meaning:

  • fix(reporting): Change CIFS read failure code to correct READ_ERR
  • lowercase-type(scope): Sentence-cased commit description

And here's why sentence-case should always be used for the commit message: It avoids the jarring jumps between commits being lowercase everywhere and then suddenly seeing JUMPY capitalization when certain commits begin with a word that REQUIRES it, such as READ_ERR or ValueError or countless other examples. By ensuring that every commit uses sentence-case, your history looks way more professional.

Of course, the Conventional Commit tag can also be capitalized if people prefer it, since the spec allows it. But since it's less important "fluff", lowercasing it (as the original Angular convention did) makes it less distracting, letting the eyes scan quickly to the first capital letter of the Sentence-cased commit description.

Doing it this way is win-win. You get the organization of Conventional Commits, and your eyes can quickly scan past the Conventional Commit tag to find the real commit message (since it's capitalized), and you don't get JUMPY differences between commit messages when certain words must be capitalized.

@Arcitec commented on GitHub (Aug 16, 2025): There's only one thing that makes sense to me: Putting the lowercase Conventional Commit tag at the start and then writing a normal best-practices, capitalized commit message after that. Meaning: - `fix(reporting): Change CIFS read failure code to correct READ_ERR` - `lowercase-type(scope): Sentence-cased commit description` And here's why sentence-case should always be used for the commit message: It avoids the jarring jumps between commits being lowercase everywhere and then suddenly seeing JUMPY capitalization when certain commits begin with a word that REQUIRES it, such as `READ_ERR` or `ValueError` or countless other examples. By ensuring that every commit uses sentence-case, your history looks way more professional. Of course, the Conventional Commit tag can **also** be capitalized if people prefer it, since the spec allows it. But since it's less important "fluff", lowercasing it (as the original Angular convention did) makes it less distracting, letting the eyes scan quickly to the first capital letter of the `Sentence-cased commit description`. Doing it this way is win-win. You get the organization of Conventional Commits, and your eyes can quickly scan past the Conventional Commit tag to find the real commit message (since it's capitalized), and you don't get JUMPY differences between commit messages when certain words *must* be capitalized.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/conventionalcommits.org#12