Skip to content
gitcomm.

Documentation

Commit Types

The ten Conventional Commit types gitcomm can emit, when each one applies, and an example of each.

On this page

When your history already follows Conventional Commits, gitcomm reads that and matches it. The types below are the ones it can produce.

TypeUse it forExample
featA new capability the user can seefeat(auth): add Google OAuth login
fixA bug fixfix(cart): resolve quantity not updating on click
refactorRestructuring with no behaviour changerefactor(api): extract validation into middleware
docsDocumentation onlydocs: update API endpoint examples in README
testAdding or changing teststest(auth): add unit tests for login flow
choreMaintenance, dependencies, toolingchore(deps): update axios to v1.7
ciPipeline changes such as GitHub Actionsci: add Node 22 to test matrix
styleFormatting with no logic changestyle: apply prettier formatting to utils/
perfA measurable speed or memory gainperf(query): add database index for user lookup
buildBuild system or external dependenciesbuild: switch bundler from webpack to vite

Anatomy of a conventional commit

text
feat(auth): add two-factor authentication
│    │       │
│    │       └─ subject: what changed, lowercase, no trailing period
│    └───────── scope (optional): the area of the project affected
└────────────── type: the category of change

The scope is optional and comes from the files in your diff. When gitcomm recognises an auth directory it will offer auth as the scope without being told.

How the style is detected

gitcomm reads your recent commit subjects and checks whether they follow the pattern. If most of them do, suggestions follow it. If your history is plain sentences, suggestions are plain sentences.

Detection also picks up subject length, capitalisation, trailing punctuation, and emoji use, so a repository that writes short lowercase subjects keeps getting them.

To override detection in either direction:

bash
# Force Conventional Commits even in a plain-history repo
npx gitcomm --force-conventional

# Force a specific type and scope
npx gitcomm -t fix -s cart