---
name: "git-cliff"
section: "1"
platform: "linux"
package: "git-cliff"
version: "2.14.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-cliff"
---

# git-cliff(1)

A highly customizable changelog generator ⛰️

## NAME

git-cliff - A highly customizable changelog generator ⛰️

## SYNOPSIS

**git-cliff** \[**-h**\|**--help**\] \[**-V**\|**--version**\] \[**-v**\|**--verbose**\]... \[**-i**\|**--init**\] \[**--templates-dir**\] \[**--list-templates**\] \[**-c**\|**--config**\] \[**--config-url**\] \[**-w**\|**--workdir**\] \[**-r**\|**--repository**\] \[**--include-path**\] \[**--exclude-path**\] \[**--tag-pattern**\] \[**--with-commit**\] \[**--with-tag-message**\] \[**--skip-tags**\] \[**--ignore-tags**\] \[**--count-tags**\] \[**--limit-tags**\] \[**--skip-commit**\] \[**-p**\|**--prepend**\] \[**-o**\|**--output**\] \[**-t**\|**--tag**\] \[**--bump**\] \[**--bumped-version**\] \[**-b**\|**--body**\] \[**--body-file**\] \[**-l**\|**--latest**\] \[**--current**\] \[**-u**\|**--unreleased**\] \[**--topo-order**\] \[**--use-branch-tags**\] \[**--no-exec**\] \[**-x**\|**--context**\] \[**--from-context**\] \[**-s**\|**--strip**\] \[**--sort**\] \[**--github-token**\] \[**--github-repo**\] \[**--gitlab-token**\] \[**--gitlab-repo**\] \[**--gitea-token**\] \[**--gitea-repo**\] \[**--bitbucket-token**\] \[**--bitbucket-repo**\] \[**--http-timeout**\] \[**--use-native-tls**\] \[**--offline**\] \[*RANGE*\]

## DESCRIPTION

A highly customizable changelog generator ⛰️

## FLAGS

- **-h**, **--help**

  Prints help information

- **-V**, **--version**

  Prints version information

- **-v**, **--verbose**

  Increases the logging verbosity

- **--list-templates**

  Prints the names of the available templates (built-in and user-defined)

- **--bumped-version**

  Prints bumped version for unreleased changes

- **-l**, **--latest**

  Processes the commits starting from the latest tag

- **--current**

  Processes the commits that belong to the current tag

- **-u**, **--unreleased**

  Processes the commits that do not belong to a tag

- **--topo-order**

  Sorts the tags topologically

- **--use-branch-tags**

  Include only the tags that belong to the current branch

- **--no-exec**

  Disables the external command execution

- **-x**, **--context**

  Prints changelog context as JSON

- **--use-native-tls**

  Load TLS certificates from the native certificate store

## OPTIONS

- **-i**, **--init** \[*\<CONFIG\>*\]

  Writes the default configuration file to cliff.toml

- **--templates-dir** *\<PATH\>*

  Sets the directory to look up user-defined templates for \`--init\`.

  A user-defined template overrides a built-in template of the same name.

  May also be specified with the **GIT\_CLIFF\_TEMPLATES\_DIR** environment variable.

- **-c**, **--config** *\<PATH\>*

  Sets the configuration file.

  When omitted, the configuration is discovered automatically (a project \`cliff.toml\` / \`.cliff.toml\` / \`.config/cliff.toml\`, then the user configuration directory), falling back to the built-in default.

  May also be specified with the **GIT\_CLIFF\_CONFIG** environment variable.

- **--config-url** *\<URL\>*

  Sets the URL for the configuration file

  May also be specified with the **GIT\_CLIFF\_CONFIG\_URL** environment variable.

- **-w**, **--workdir** *\<PATH\>*

  Sets the working directory

  May also be specified with the **GIT\_CLIFF\_WORKDIR** environment variable.

- **-r**, **--repository** *\<PATH\>...*

  Sets the git repository

  May also be specified with the **GIT\_CLIFF\_REPOSITORY** environment variable.

- **--include-path** *\<PATTERN\>*

  Sets the path to include related commits

  May also be specified with the **GIT\_CLIFF\_INCLUDE\_PATH** environment variable.

- **--exclude-path** *\<PATTERN\>*

  Sets the path to exclude related commits

  May also be specified with the **GIT\_CLIFF\_EXCLUDE\_PATH** environment variable.

- **--tag-pattern** *\<PATTERN\>*

  Sets the regex for matching git tags

  May also be specified with the **GIT\_CLIFF\_TAG\_PATTERN** environment variable.

- **--with-commit** *\<MSG\>*

  Sets custom commit messages to include in the changelog

  May also be specified with the **GIT\_CLIFF\_WITH\_COMMIT** environment variable.

- **--with-tag-message** \[*\<MSG\>*\]

  Sets custom message for the latest release

  May also be specified with the **GIT\_CLIFF\_WITH\_TAG\_MESSAGE** environment variable.

- **--skip-tags** *\<PATTERN\>*

  Sets the tags to skip in the changelog

  May also be specified with the **GIT\_CLIFF\_SKIP\_TAGS** environment variable.

- **--ignore-tags** *\<PATTERN\>*

  Sets the tags to ignore in the changelog

  May also be specified with the **GIT\_CLIFF\_IGNORE\_TAGS** environment variable.

- **--count-tags** *\<PATTERN\>*

  Sets the tags to count in the changelog

  May also be specified with the **GIT\_CLIFF\_COUNT\_TAGS** environment variable.

- **--limit-tags** *\<N\>*

  Limits the number of tags to process

  May also be specified with the **GIT\_CLIFF\_LIMIT\_TAGS** environment variable.

- **--skip-commit** *\<SHA1\>*

  Sets commits that will be skipped in the changelog

  May also be specified with the **GIT\_CLIFF\_SKIP\_COMMIT** environment variable.

- **-p**, **--prepend** \[*\<PATH\>*\]

  Prepends entries to the given changelog file

  May also be specified with the **GIT\_CLIFF\_PREPEND** environment variable.

- **-o**, **--output** \[*\<PATH\>*\]

  Writes output to the given file

  May also be specified with the **GIT\_CLIFF\_OUTPUT** environment variable.

- **-t**, **--tag** *\<TAG\>*

  Sets the tag for the latest version

  May also be specified with the **GIT\_CLIFF\_TAG** environment variable.

- **--bump** \[*\<BUMP\>*\]

  Bumps the version for unreleased changes. Optionally with specified version

- **-b**, **--body** *\<TEMPLATE\>*

  Sets the template for the changelog body

  May also be specified with the **GIT\_CLIFF\_TEMPLATE** environment variable.

- **--body-file** *\<PATH\>*

  Reads the template for the changelog body from a file

- **--from-context** *\<PATH\>*

  Generates changelog from a JSON context

  May also be specified with the **GIT\_CLIFF\_CONTEXT** environment variable.

- **-s**, **--strip** *\<PART\>*

  Strips the given parts from the changelog\

  *Possible values:*

  - •

    header

  - •

    footer

  - •

    all

- **--sort** *\<SORT\>* \[default: oldest\]

  Sets sorting of the commits inside sections\

  *Possible values:*

  - •

    oldest

  - •

    newest

## REMOTE OPTIONS

- **--github-token** *\<TOKEN\>*

  Sets the GitHub API token

  May also be specified with the **GITHUB\_TOKEN** environment variable.

- **--github-repo** *\<OWNER/REPO\>*

  Sets the GitHub repository

  May also be specified with the **GITHUB\_REPO** environment variable.

- **--gitlab-token** *\<TOKEN\>*

  Sets the GitLab API token

  May also be specified with the **GITLAB\_TOKEN** environment variable.

- **--gitlab-repo** *\<OWNER/REPO\>*

  Sets the GitLab repository

  May also be specified with the **GITLAB\_REPO** environment variable.

- **--gitea-token** *\<TOKEN\>*

  Sets the Gitea API token

  May also be specified with the **GITEA\_TOKEN** environment variable.

- **--gitea-repo** *\<OWNER/REPO\>*

  Sets the Gitea repository

  May also be specified with the **GITEA\_REPO** environment variable.

- **--bitbucket-token** *\<TOKEN\>*

  Sets the Bitbucket API token

  May also be specified with the **BITBUCKET\_TOKEN** environment variable.

- **--bitbucket-repo** *\<OWNER/REPO\>*

  Sets the Bitbucket repository

  May also be specified with the **BITBUCKET\_REPO** environment variable.

- **--http-timeout** *\<SECS\>*

  Sets the HTTP timeout for remote metadata requests in seconds

  May also be specified with the **GIT\_CLIFF\_HTTP\_TIMEOUT** environment variable.

- **--offline**

  Disable network access for remote repositories

  May also be specified with the **GIT\_CLIFF\_OFFLINE** environment variable.

## ARGS

- \[*RANGE*\]

  Sets the commit range to process

## VERSION

v2.14.2

## AUTHORS

git-cliff contributors \<git-cliff@protonmail.com\>
