Commit Message Formats

March 30, 2026 ยท View on GitHub

CommitSage supports 8 commit message formats. Choose the one that matches your team's conventions.


Conventional

The most widely adopted format. Supports optional scope and multi-line body.

type(scope): description

- bullet point 1
- bullet point 2

Example:

feat(auth): add OAuth2 login flow

- Add Google and GitHub providers
- Store tokens in secure storage

Angular

Based on the Angular project's commit conventions. Very similar to Conventional but follows Angular-specific rules.

type(scope): short summary

Example:

fix(router): resolve navigation guard race condition

- Add mutex lock for concurrent navigations
- Clear pending state on route cancel

Karma

Single-line format used by the Karma test runner project. No body or footer.

type(scope): message

Example:

chore(ci): update deployment script to Node 16

Semantic

Minimal format without scope. Just type and message.

type: message

Example:

feat: add user avatar upload functionality

Emoji

Uses Gitmoji-style emoji prefixes instead of text types.

:emoji: message

Common emojis:

EmojiCodeMeaning
โœจ:sparkles:New feature
๐Ÿ›:bug:Bug fix
๐Ÿ“:memo:Documentation
๐ŸŽจ:art:Code style/formatting
โ™ป๏ธ:recycle:Refactoring
โšก๏ธ:zap:Performance
๐Ÿงช:test_tube:Tests
๐Ÿ› ๏ธ:hammer_and_wrench:Build/dependencies
๐Ÿ”’:lock:Security fix

Example:

โœจ add real-time collaboration feature

EmojiKarma

Combines Emoji and Karma formats โ€” emoji prefix followed by type, scope, and message.

:emoji: type(scope): message

Example:

โœจ feat(editor): add real-time collaboration

Google

Follows Google's commit message style with optional body and footer sections.

Type: Description

Body

Footer

Example:

feat: Add user authentication system

Implemented OAuth2 integration with Google and GitHub providers.

Atom

Based on the Atom editor's conventions. Includes scope, body, and footer.

type(scope): subject

body

footer

Example:

feat(auth): add OAuth2 integration with Google provider

Implemented complete OAuth2 flow including:
- Authorization code exchange
- Token refresh mechanism
- User profile retrieval

Commit Types Reference

All formats (except Emoji) use the same set of types:

TypeDescription
featNew feature
fixBug fix
docsDocumentation changes
styleFormatting, no code change
refactorCode change without fixing bugs or adding features
perfPerformance improvement
testAdding or updating tests
buildBuild system or dependencies
ciCI/CD changes
choreOther maintenance tasks
revertRevert a previous commit (Google, Atom only)

Choosing a Format

  • Conventional โ€” best default choice, widely supported by tooling (changelogs, versioning)
  • Angular โ€” if your project follows Angular conventions
  • Karma โ€” when you want simple, single-line messages
  • Semantic โ€” when scope is unnecessary and you want minimal format
  • Emoji โ€” for visual commit logs, popular in open-source projects
  • EmojiKarma โ€” when you want both emoji visual cues and structured types
  • Google/Atom โ€” when your project follows these specific conventions