#!/bin/bash REPO_NAME=$(basename $(git config --get remote.origin.url) | cut -d'.' -f1) git pull --tags origin master &> /dev/null echo "

$REPO_NAME Changelog

" # get the latest tag TAG_START=$(git tag | sort -Vr | head -1) # check to see if there is a tag start first. if [ ! -z "${TAG_START}" ]; then head_tag_diff=$(git rev-list HEAD ^${TAG_START} |wc -l) if [ $head_tag_diff -eq 0 ]; then # HEAD and latest tag intersect. Instead try and find a previous tag and use that as the start diff TAG_END=$TAG_START TAG_START=$(git tag | sort -Vr | head -2 | sort -V | head -1) else TAG_END="HEAD" fi echo "

tag: ${TAG_START} -> ${TAG_END}

" git log --pretty=format:"
  • %h • %s
  • " --reverse ${TAG_START}..${TAG_END} else # no tag, just give the full log git log --pretty=format:"
  • %h • %s
  • " --reverse fi