Let\'s imagine the blerp command line tool maintained on git. This tool has the (hidden) --version option which returns its version (let\'s say 0.1.2
Alexey Kiselev and Dario already hinted towards the answer, but I will try to explain it in detail.
There are two types of versioning schemes:
People use different schemes as per their need, but semantic versioning is fairly widely used and authored by Tom Preston-Werner, co-founder of GitHub.
Semantic versioning follows the pattern of X.Y.Z
Or more readable would be [major].[minor].[patch]-[build/beta/rc]
E.g. 1.2.0-beta
major or X can be incremented if there are major changes in software, like backward-incompatible API release.
minor or Y is incremented if backward compatible APIs are introduced.
patch or Z is incremented after a bug fix.
By using tags:
Tags in Git can be used to add a version number.
git tag -a "v1.5.0-beta" -m "version v1.5.0-beta"
adds a version tag of v1.5.0-beta to your current Git repository. Every new commit after this will auto-increment tag by appending commit number and commit hash. This can be viewed using the git describe command.
v1.5.0-beta-1-g0c4f33f here -1- is the commit number and 0c4f33f the abbreviation of commit's hash. The g prefix stands for "git".
Complete details can be viewed using:
git show v1.5.0-beta