Installation

GitVersion's command line interface can be installed and consumed in many different ways. Read about the options below.

.NET Global Tool

GitVersion can be installed as a .NET global tool under the name GitVersion.Tool by executing the following in a terminal:

dotnet tool install --global GitVersion.Tool

Hint: To install an older version of GitVersion.Tools, use the --version flag of dotnet tool install

Example: dotnet tool install GitVersion.Tool --global --version 5.*

If you want to pin to a specific version of GitVersion, you can find the available versions of GitVersion.Tool on NuGet.

This should work on all operating systems supported by .NET Core.

To run call

dotnet-gitversion

Homebrew

To install the gitversion formula with Homebrew, enter the following into a terminal:

brew install gitversion

Switches are available with gitversion -h. Even though the documentation uses a slash / for all switches, you need to use a dash - instead, since / is interpreted as a root path on POSIX based operating systems.

This should work on all operating systems supported by Homebrew (at the time of writing: Linux and macOS).

Chocolatey

Available on Chocolatey as GitVersion.Portable.

choco install GitVersion.Portable

This should work on all operating systems supported by Chocolatey (at the time of writing: Windows).

Docker

gittools/gitversion allows you to use GitVersion through Docker, without installing any other dependencies. To use the Docker image, execute the following:

docker run --rm -v "$(pwd):/repo" gittools/gitversion:latest-debian.12 /repo

The important arguments here are:

Argument Description
"$(pwd):/repo" Maps the output of pwd (the working directory) to the /repo directory within the Docker container.
gittools/gitversion:{tag} The name and tag of the GitVersion container to use.
/repo The directory within the Docker container GitVersion should use as its working directory. Don't change this.

Caveat: The /output buildserver option doesn't work universally with Docker since environment variables defined inside the Docker container will not be exposed to the host OS.

This should work on all operating systems supported by Docker (at the time of writing: Linux, macOS, Windows).

GitHub