Conventional Commits

a standard for meaningful and machine-readable commit messages

Introduction

A specification for adding human and machine readable meaning to commit messages. – Conventional Commits

The iAM.AMR project has adopted Conventional Commits to improve Git commit messages:

Usage

The commit message should be structured as follows:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Types

Change what code does

  • feat: add a new feature or functionality
  • fix: fix a bug

Change how code works

  • refactor: modify code without changing its inputs or outputs
    • perf: modify code without changing its inputs or outputs for performance

Change how code is presented

  • docs: add or edit documentation
  • style: modify code style (e.g., white-space, formatting)

Change project infrastructure

  • test: add or modify tests
  • build: modify build system or dependencies
  • ci or ops: modify deployment system or management (e.g., CI, backups, monitoring)
  • chore: make a perfunctory change (e.g., initial commit, modifying .gitignore)