Carles Andres' avatarHomeBlogReference
Back to reference

Conventional Commits Prefixes

Standardized commit message prefixes from the Conventional Commits specification.

Required Types

The specification mandates these two types:

TypeDescription
featA new feature for the user (correlates with MINOR in SemVer)
fixA bug fix for the user (correlates with PATCH in SemVer)

Common Additional Types

These types are not mandated by the specification but are widely used conventions from @commitlint/config-conventional (based on the Angular convention):

TypeDescription
docsDocumentation only changes
styleFormatting, missing semicolons, white-space, etc. (no code change)
refactorCode change that neither fixes a bug nor adds a feature
perfA code change that improves performance
testAdding missing tests or correcting existing tests
buildChanges affecting the build system or external dependencies
ciChanges to CI configuration files and scripts
choreOther changes that don't modify src or test files
revertReverts a previous commit

Breaking Changes

ElementDescription
BREAKING CHANGEA footer token (not a type) indicating a breaking API change (correlates with MAJOR in SemVer)
!Append to any type (e.g., feat!:) to indicate a breaking change

Format Elements

ElementDescription
scopeOptional noun in parentheses after the type describing a code section (e.g., fix(parser):)