Skip to content

Instantly share code, notes, and snippets.

@bard86
Forked from goforbroke1006/git-retag-patch
Created February 24, 2020 08:33
Show Gist options
  • Save bard86/120a245bd781f4d0f90ed4fe47c7feca to your computer and use it in GitHub Desktop.
Save bard86/120a245bd781f4d0f90ed4fe47c7feca to your computer and use it in GitHub Desktop.
#!/bin/sh
#Get the highest tag number
VERSION=$(git describe --abbrev=0 --tags)
VERSION=${VERSION:-'0.0.1'}
#Get number parts
MAJOR="${VERSION%%.*}"; VERSION="${VERSION#*.}"
MINOR="${VERSION%%.*}"; VERSION="${VERSION#*.}"
PATCH="${VERSION%%.*}"; VERSION="${VERSION#*.}"
#Increase version
PATCH=$((PATCH+1))
#Get current hash and see if it already has a tag
GIT_COMMIT=$(git rev-parse HEAD)
NEEDS_TAG=$(git describe --contains "$GIT_COMMIT")
#Create new tag
NEW_TAG="$MAJOR.$MINOR.$PATCH"
echo "Updating to $NEW_TAG"
#Only tag if no tag already (would be better if the git describe command above could have a silent option)
if [ -z "$NEEDS_TAG" ]; then
echo "Tagged with $NEW_TAG (Ignoring fatal:cannot describe - this means commit is untagged) "
git tag "$NEW_TAG"
else
echo "Already a tag on this commit"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment