Skip to content

Instantly share code, notes, and snippets.

@loisaidasam
Last active October 19, 2023 16:07
Show Gist options
  • Save loisaidasam/b1e6879f3deb495c22cc to your computer and use it in GitHub Desktop.
Save loisaidasam/b1e6879f3deb495c22cc to your computer and use it in GitHub Desktop.
Sort git tags by semver

If you're like me and you use semver for versioning your tags, you probably hate when you do this:

$ git tag -l
0.1.0
0.10.0
0.2.0
0.3.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.7.1
0.7.2
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.9.0

because the 0.10.0 tag is hiding way up near the top and you might not even see it.

Here's the solution, create a file on your $PATH (maybe in your ~/bin dir) called git-tag-sort with the contents of the file below, and you should be able to do this:

$ git tag-sort 
0.1.0
0.2.0
0.3.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.7.1
0.7.2
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.9.0
0.10.0

Have fun!

#!/bin/bash
git tag --sort=v:refname
@paulcervov
Copy link

git tag | tr - \~ | sort -V | tr \~ -

Only this 👆 works correct.

0.0.1
0.0.2-develop
0.0.2

👏 Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment