diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0823bb4773d0f7edce475c765392341195cae258..58e01a94056816611d44d3ec2edbd6c51e6c9f00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,9 +57,13 @@ option(OGS_USE_CVODE "Use the Sundials CVODE module?" OFF)
 option(OGS_BUILD_UTILS "Should the utilities programs be built?" ON)
 option(OGS_BUILD_TESTING "Should the tests be built?" ON)
 
+if(MSVC)
+    set(CMD_COMMAND "cmd;/c")
+endif()
+
 # ---- CMake includes ----
-include(GitSetup)
 include(Versions)
+include(GitSetup)
 include(PythonSetup)
 include(ProcessesSetup)
 include(ProjectSetup)
@@ -226,7 +230,7 @@ if(POETRY)
     file(STRINGS ${PROJECT_BINARY_DIR}/.python_packages OGS_PYTHON_PACKAGES)
     list(REMOVE_DUPLICATES OGS_PYTHON_PACKAGES)
     execute_process(
-        COMMAND ${_CMD_COMMAND} poetry add ${OGS_PYTHON_PACKAGES}
+        COMMAND ${CMD_COMMAND} poetry add ${OGS_PYTHON_PACKAGES}
         WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
     )
 endif()
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 4f60c7a636a6bfd723cccd03d8d3f61eeff74c29..ca2bf9f61b29d07e7d7967123427cea20785eee0 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -3,7 +3,7 @@ if(NOT OGS_USE_CONAN OR NOT OGS_USE_NETCDF)
 endif()
 string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower)
 if(OGS_USE_CONAN_lower STREQUAL "auto" AND POETRY)
-    execute_process(COMMAND ${_CMD_COMMAND} poetry add conan==${ogs.minimum_version.conan}
+    execute_process(COMMAND ${CMD_COMMAND} poetry add conan==${ogs.minimum_version.conan}
         WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
     find_program(CONAN_CMD conan HINTS ${LOCAL_VIRTUALENV_BIN_DIRS}
         REQUIRED NO_DEFAULT_PATH
diff --git a/scripts/cmake/Coverage.cmake b/scripts/cmake/Coverage.cmake
index 0fb66a367f453eda3881fecc93114de26eae18c8..c11fb28d4f48d9b2ef703c66cb0f2159e01dd978 100644
--- a/scripts/cmake/Coverage.cmake
+++ b/scripts/cmake/Coverage.cmake
@@ -19,7 +19,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
 
 if(NOT FASTCOV_PATH)
     execute_process(
-        COMMAND ${_CMD_COMMAND} poetry add fastcov==1.10
+        COMMAND ${CMD_COMMAND} poetry add fastcov==1.10
         WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
     )
     find_program(
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 5e914f0d29350ec551da89241f8ff64eeb391965..5f1fcaa719e90f71f134dfae2935d7b42ace66e3 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -2,13 +2,6 @@
 # Find tools
 # ##############################################################################
 
-string(REPLACE ".windows.1" "" GIT_VERSION_STRING ${GIT_VERSION_STRING})
-if(${GIT_VERSION_STRING} VERSION_LESS ${ogs.minimum_version.git})
-    message(FATAL_ERROR "Git version ${ogs.minimum_version.git} is required. \
-        Found version ${GIT_VERSION_STRING}."
-    )
-endif()
-
 find_package(Doxygen OPTIONAL_COMPONENTS dot)
 if(TARGET Doxygen::dot)
     # Create dependency graph in build dir with:
diff --git a/scripts/cmake/GitSetup.cmake b/scripts/cmake/GitSetup.cmake
index d7aa117ca154cb0e970957ff8304ef2ec0105f49..0d3f50e5638ed83601f7175f6dc1500d16a35a58 100644
--- a/scripts/cmake/GitSetup.cmake
+++ b/scripts/cmake/GitSetup.cmake
@@ -1,12 +1,25 @@
-# Git detection
-find_package(Git REQUIRED)
-
 # cmake-lint: disable=W0106
 if(DEFINED ENV{OGS_VERSION})
     set(OGS_VERSION $ENV{OGS_VERSION})
-    message(STATUS "OGS VERSION: ${OGS_VERSION} (set via environment)")
+    message(STATUS "Using user-provided OGS_VERSION=${OGS_VERSION} (set via environment).")
+    return()
 elseif(DEFINED OGS_VERSION)
-    message(STATUS "Using user-provided OGS_VERSION=${OGS_VERSION}")
+    message(STATUS "Using user-provided OGS_VERSION=${OGS_VERSION}.")
+    return()
+endif()
+
+# Git detection
+find_package(Git)
+if(NOT Git_FOUND)
+    message(FATAL_ERROR "Git was not found. Either install Git or provide an \
+        OGS_VERSION as an environment- or CMake-variable!"
+)
+endif()
+string(REPLACE ".windows.1" "" GIT_VERSION_STRING ${GIT_VERSION_STRING})
+if(${GIT_VERSION_STRING} VERSION_LESS ${ogs.minimum_version.git})
+    message(FATAL_ERROR "Git version ${ogs.minimum_version.git} is required. \
+        Found version ${GIT_VERSION_STRING}."
+    )
 endif()
 
 if(NOT _IS_GIT_REPO)
@@ -118,7 +131,3 @@ if(_IS_GIT_REPO AND NOT OGS_VERSION)
         OUTPUT_STRIP_TRAILING_WHITESPACE
     )
 endif()
-
-if(MSVC)
-    set(_CMD_COMMAND "cmd" "/c" CACHE INTERNAL "")
-endif()
diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake
index 8b2b26b567ee40817e1f08f8ffc53b358053ba6a..5adc4eae6675cd5d0e1e197445709cb9b00a0fdf 100644
--- a/scripts/cmake/PythonSetup.cmake
+++ b/scripts/cmake/PythonSetup.cmake
@@ -21,7 +21,7 @@ if(OGS_USE_POETRY)
         endif()
         if(NOT EXISTS ${PROJECT_BINARY_DIR}/.venv)
             execute_process(
-                COMMAND ${_CMD_COMMAND} poetry install
+                COMMAND ${CMD_COMMAND} poetry install
                 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
             )
         endif()