LinuxCommandLibrary

git-cliff

Generate changelogs from git history

TLDR

Generate a changelog from all commits in a Git repository and save it to CHANGELOG.md

$ git cliff > [CHANGELOG.md]
copy

Generate a changelog from commits starting from the latest tag and print it to stdout
$ git cliff [[-l|--latest]]
copy

Generate a changelog from commits that belong to the current tag (use git checkout on a tag before this)
$ git cliff --current
copy

Generate a changelog from commits that do not belong to a tag
$ git cliff [[-u|--unreleased]]
copy

Write the default config file to cliff.toml in the current directory
$ git cliff [[-i|--init]]
copy

SYNOPSIS

git cliff [OPTIONS]

PARAMETERS

--config
    Path to the git-cliff configuration file (default: git-cliff.toml).

--repository
    Path to the git repository (default: current directory).

--from
    Git revision to start changelog generation from (defaults to the oldest tag or commit).

--to
    Git revision to end changelog generation at (defaults to HEAD).

--output
    Path to the output changelog file (defaults to standard output).

--prepend
    Path to the file to prepend to the changelog.

--append
    Path to the file to append to the changelog.

--version
    Prints the version of git-cliff.

--help
    Displays help information.

DESCRIPTION

git-cliff is a command-line tool designed to generate changelogs from git history.
It analyzes commit messages, extracts relevant information, and formats it into a structured changelog file.
This tool helps streamline the process of creating release notes and tracking changes across different versions of a software project.
It is highly configurable via a TOML configuration file, allowing users to tailor the changelog output to match their specific needs and project standards. git-cliff supports various templates and allows filtering commits based on authors, scopes, and other criteria, making it a versatile solution for managing changelog generation in Git-based projects. It uses conventional commits to properly categorise the change logs, and it is highly customizable to different needs.

CONFIGURATION

git-cliff relies heavily on a TOML configuration file (typically named `git-cliff.toml`) to define how the changelog is generated. This file specifies the format of commit messages, the categories of changes to include, and the overall structure of the changelog.

CONVENTIONAL COMMITS

The tool encourages the use of conventional commit messages (e.g., `feat: add new feature`, `fix: resolve bug`) to automatically categorize and structure the changelog entries.

HISTORY

git-cliff is a relatively new command-line tool focused on streamlining changelog generation. Its development is driven by the need for a flexible and configurable solution that integrates with Git repositories and supports various commit conventions. It is actively maintained and improving in functionality.

Copied to clipboard