Conventional Commits
A lightweight convention giving commit messages a machine-readable type and scope.
Conventional Commits is a specification for commit message format: a type, an optional scope, and a description — fix(parser): handle empty input — with a body and footers below. Types in common use include feat, fix, docs, refactor, test, chore, and perf.
The convention buys two things. Messages become scannable, since the type and scope tell you what kind of change it is before you read anything. And they become machine-readable, so changelogs and version bumps can be derived automatically — a feat implies a minor bump, a breaking-change marker a major one. See Semantic Versioning.
The scope is where most of the value lives in practice, and where it is most often wasted. A precise scope naming the module or feature area makes history navigable; a vague one repeated across every commit adds nothing. Scopes should match how the project is actually organized, and should be reused rather than reinvented per commit.
The convention is orthogonal to how much a commit should contain — see Atomic Commit — and it does not remove the need for a body. A one-line conventional message is fine for a genuinely self-explanatory change; anything with a motivation worth recording still needs prose.
See also4
Commit
A recorded snapshot of a project with a message explaining it.
Version Control & Delivery9 connections
Atomic Commit
A commit containing exactly one logical change, complete and independently sound.
Version Control & Delivery9 connections
Semantic Versioning
A version-numbering convention where the number communicates the kind of change.
Version Control & Delivery14 connections
Naming
Choosing identifiers so the code states its own meaning without commentary.
Method55 connections
Related6
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from3
- Atomic CommitVersion Control & Delivery
A commit containing exactly one logical change, complete and independently sound.
- CommitVersion Control & Delivery
A recorded snapshot of a project with a message explaining it.
- Semantic VersioningVersion Control & Delivery
A version-numbering convention where the number communicates the kind of change.