Provided by: git-extras_5.1.0-1_all bug


       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
       specifying one or both of the range options (-f|--final-tag and -s|--start-tag).

       You could customize the changelog format via some git config options.

       ○   git  config  changelog.format  $format  controls the format of each commit. It will be
           passed as git log --pretty=format:$format. The default value is * %s.

       ○   git config changelog.mergeformat $format is like changelog.format but only  used  when
           --merges-only is specified. The default value is * %s%n%w(64,4,4)%b.



       The name of the output file. By default the new file will be unless an existing
       changelog is detected in which case the existing file will be updated.

       -a, --all

       Retrieve all commits. Ignores -s|--start-tag/commit 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

       -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.


       Like the --start-tag but specify the oldest commit instead of tag. Note that the specified
       commit will be contained in the changelog.

       -n, --no-merges

       Filters out merge commits (commits with more than 1 parent) from generated changelog.

       -m, --merges-only

       Uses only merge commits (commits with more than 1 parent) for generated changelog. It also
       changes  the  default  format  to include the merge commit messages body, as on github the
       commits subject line only contains the branch name but no information about the content of
       the merge.

       -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.


       Updating existing file or creating a new file with pretty formatted output:

       Listing commits from the current version:

       Listing a range of commits from 2.1.0 to now:

       Listing a pretty formatted version of the same:

       Listing a range of commits from initial commit to 2.1.0:

       Listing a pretty formatted range of commits between 0.5.0 and 1.0.0:

       Listing a pretty formatted range of commits between 0b97430 and 1.0.0:

       Specifying a file for output:

       And if an existing Changelog exists, replace its contents entirely:


       Written by Mark Eissler <>





                                          December 2019                          GIT-CHANGELOG(1)