View Git Tags with Semver Ordering

If you’re like me, you wish all Git tags adhered to the Semantic Versioning standard. Unfortunately, Semver is just a convention, so Git tags can basically be any string of text. By default when you use the git tag command, your output will be in alphabetical order. Being a gopher, almost all the projects I work on are tagged according to Semver standards, which means the default output is fairly useless.

In order to print all the Git tags in a project in Semver order, simply run git tag -l | sort -V.

Alternatively, if you’re on at least version 2 of Git, you won’t even need to use the sort command, just run:

<code>git tag -l --sort=version:refname</code>
Code language: Bash (bash)

If you want the latest tags at the top of the output, use -version to inverse the sort:

<code>git tag -l --sort=-version:refname</code>
Code language: Bash (bash)

If you want your global installation of Git to default to Semver sorting, you can use the following command as of Git v2.1+:

<code>git config --global tag.sort version:refname</code>
Code language: Bash (bash)

Examples of Git standard output

Default alphabetical sorting

v0.0.0 v0.0.1 v0.0.12 v0.0.2 v0.1.0 v0.10.0 v1.0.0 v1.1.1 v1.11.0 v1.12.0 v10.0.0 v2.0.0
Code language: CSS (css)

Semver sorting

v0.0.0 v0.0.1 v0.0.2 v0.0.12 v0.1.0 v0.10.0 v1.0.0 v1.1.1 v1.11.0 v1.12.0 v2.0.0 v10.0.0
Code language: CSS (css)

Have questions or feedback?

Follow and hit me up on Twitter @q_vault if you have any questions or comments. If I’ve made a mistake in the article, please let me know so I can get it corrected!

Leave a Comment