Commit Message Generator

Generate conventional commit messages — follow the Conventional Commits specification for structured, readable history.

Generated Commit Message

  

About Conventional Commits

The Conventional Commits specification is a standard for structuring commit messages that makes them machine-readable and human-friendly. Format: type(scope): description. Types signal intent: feat (new feature), fix (bug fix), docs, style, refactor, perf, test, build, ci, chore. The scope is optional and names the part of the codebase affected. The description is a short imperative summary in present tense.

Benefits of conventional commits: automated changelog generation (tools like conventional-changelog), automated semantic versioning (standard-version, semantic-release), better git log readability, and enabling tools like Commitizen and CommitLint to enforce the standard in CI/CD. Breaking changes are indicated with BREAKING CHANGE: in the footer or with ! after the type.

FAQ

Should commit descriptions use present or past tense?
Conventional Commits recommends imperative present tense: "add feature" not "added feature" or "adds feature". This matches how Git itself writes automatic commit messages ("Merge branch main"). Think of the description as completing the sentence: "If applied, this commit will: add user authentication."
How do I mark a breaking change?
Two ways: 1) Add ! after the type: feat!: rename user API endpoints. 2) Add BREAKING CHANGE: description in the commit footer (after body). Both trigger a major version bump in semantic versioning tools. Always document what changes and how to migrate.