git-changelog
- Generate a changelog report
git-changelog
[options] [<file>]
git-changelog
{-h | --help | ?}
Generates a changelog from git(1) tags (annotated or lightweight) and commit messages. Existing changelog files with filenames that begin with Change or History will be identified automatically with a case insensitive match pattern and existing content will be appended to the new output generated--this behavior can be disabled by specifying the prune option (-p|--prune-old). The generated file will be opened in $EDITOR when set.
If no tags exist, then all commits are output; if tags exist, then only the most-recent commits are output up to the last identified tag. This behavior can be changed by specifing one or both of the range options (-f|--final-tag and -s|--start-tag).
<file>
The name of the output file. By default the new file will be History.md unless an existing changelog is detected in which case the existing file will be updated.
-a, --all
Retrieve all commits. Ignores -s|--start-tag and -f|--final-tag options (if set).
-l, --list
Show commits in list format (without titles, dates).
-t, --tag
Specify a tag label to use for most-recent (untagged) commits.
-f, --final-tag
When specifying a range, the newest tag at which point commit retrieval will end. Commits will be returned from the very first commit until the final tag unless a start tag is also specified.
-s, --start-tag
When specifying a range, the oldest tag to retrieve commits from. Commits will be returned from the start tag to now unless a final tag is also specified.
-n, --no-merges
Filters out merge commits (commits with more than 1 parent) from generated changelog.
-p, --prune-old
Replace existing changelog entirely with newly generated content, thereby disabling the default behavior of appending the content of any detected changelog to the end of newly generated content.
-x, --stdout
Write output to stdout instead of to a new changelog file.
-h, --help, ?
Show a help message with basic usage information.
$ git changelog
$ git changelog --list
$ git changelog --list --start-tag 2.1.0
$ git changelog --start-tag 2.1.0
$ git changelog --list --final-tag 2.1.0
$ git changelog --start-tag 0.5.0 --final-tag 1.0.0
$ git changelog ChangeLog.md
$ git changelog --prune-old
Written by Mark Eissler <mark@mixtur.com>
<https://github.com/tj/git-extras/issues>
<https://github.com/tj/git-extras>