Git Tags

Git Tags are great for tracking meaningful versions of your code

They are an essentail part of any library used by a package manager such as Composer

Configure git push to push tags at the same time

To configure git push to also push tags, you need to edit the .git/config file in your project repo and ensure that the remotes you want to push tags for look like:

1
2
3
4
5
[remote "origin"]
    url = git@server:path/to/repo.git
    fetch = refs/heads/*:refs/remotes/origin/*
    push = refs/heads/*
    push = refs/tags/*

Easily Handle Semver Tags

Keeping track of semver tags can be a bit painstaking. To make life easier suggest you do this:

1
2
3
4
5
mkdir ~/bin
cd ~/bin
wget https://raw.githubusercontent.com/tomologic/bump-semver/master/bump.sh
mv bump.sh bump
chmod u+x bump

And then in any project using semver tags, you can bump the tag with the bump command, eg

1
2
$ bump patch
tagging 1.1.1 3860ff9c56dcc2a174c54771f33bbfec2dd2857b

Tag Prefixes

If you are working with repos with tag prefixes, eg v, then you need to define a PREFIX variable, or you can just edit the bump script

For example edit bump so it looks like:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
# Bumps the semantic version of the git-project.
# If no semantic version tags exist in the project, the version starts out at v0.0.0
# and is incremented by one for the field indicated by the bump command argument.

#Set prefix <--- THIS BIT
PREFIX='v'

find_latest_semver() {
  pattern="^$PREFIX([0-9]+\.[0-9]+\.[0-9]+)\$"
...