1001Ferramentas
💬 Dev

Git Commit Template Generator

Commit message template in Conventional Commits style (feat/fix/docs/...), with scope, breaking change and issue reference.

Commit messages in the Conventional Commits format

Conventional Commits standardises the first line of a commit into a format a machine can read: type, optional scope, colon and summary. That is not bureaucracy — it is what allows generating a changelog automatically, deciding whether the next version is major, minor or patch, and filtering history by kind of change.

Fill in the fields and the page assembles the complete message, with body and footer when present. The breaking-change marker deserves attention: the exclamation mark after the scope signals that the major version must rise, and the footer describing the break is what tools read to build the warnings section of the changelog.

Saved as a file and pointed at from the config, the template shows up prefilled every time you commit without a message on the command line — which makes the standard get followed out of inertia rather than discipline. The convention asks for a short imperative summary, up to around fifty characters, because that is what appears in one-line listings and in review interfaces.

Frequently asked questions

Which types exist?
The specification requires only feat and fix, the ones affecting the version number. The rest is convention borrowed from the Angular message style: docs, style, refactor, perf, test, build, ci and chore. Worth agreeing the list within the project, since changelog tools tend to group by those names.
How do I mark a breaking change?
Two ways, and using both is common: the exclamation mark right before the colon and a footer describing what broke. The exclamation is what most tools read to raise the major version; the footer is what becomes text in the changelog.
Does this apply to the history I already have?
No, and rewriting history purely to standardise messages rarely pays off — it changes every hash and complicates life for anyone holding a local copy. The normal route is adopting it going forward and configuring the changelog tool to start counting from a specific tag.

Related Tools