Programmatically (not manually) finding the path where Git is installed on a Windows system

前端 未结 6 742
太阳男子
太阳男子 2020-12-13 06:12

I\'d like to write a small build helper tool that shall read some properties of the current Git working directory, like the last commit hash, whether there\'s modified files

相关标签:
6条回答
  • 2020-12-13 06:32

    If you are in Windows 8 and above here are the steps that you can follow.

    1. go to your start screen and search for git.exe
    2. In the search result right click on the Git Gui/ Git Bash icon and select Open File location
    3. You will be taken to a flder where the shortcuts will be located. Right click on the shortcut nd select properties
    4. the file location can be found in the Target field

    For me it was "C:\Users\\AppData\Local\Programs\Git\cmd\git-gui.exe"

    Hope it helps

    0 讨论(0)
  • 2020-12-13 06:34

    You can also open Git Bash and type where git. It will return the path where Git is installed on your machine.

    0 讨论(0)
  • 2020-12-13 06:37

    look in the registry under: HKEY_CURRENT_USER\Software\Git-Cheetah

    0 讨论(0)
  • 2020-12-13 06:38

    If you are inside of (or if you can open) your git bash shell, you can use pwd -W

    $ cd / && pwd -W
    C:/Program Files (x86)/Git
    

    (I know, this is probably not what you want, and it's quite elementary, but I spent some time to find this, and perhaps it's useful for other people).

    0 讨论(0)
  • 2020-12-13 06:43

    git --man-path gets you to [base git installation dir]\mingw64\share\man. git.exe is at [base git installation dir]\cmd.

    0 讨论(0)
  • 2020-12-13 06:46

    I'm using the following batch file to find out where Git for Windows has been installed:

    @echo off
    
    setlocal enabledelayedexpansion
    
    rem Read the Git for Windows installation path from the Registry.
    for %%k in (HKCU HKLM) do (
        for %%w in (\ \Wow6432Node\) do (
            for /f "skip=2 delims=: tokens=1*" %%a in ('reg query "%%k\SOFTWARE%%wMicrosoft\Windows\CurrentVersion\Uninstall\Git_is1" /v InstallLocation 2^> nul') do (
                for /f "tokens=3" %%z in ("%%a") do (
                    set GIT=%%z:%%b
                    echo Found Git at "!GIT!".
                    goto FOUND
                )
            )
        )
    )
    
    goto NOT_FOUND
    
    :FOUND
    
    rem Make sure Bash is in PATH (for running scripts).
    set PATH=%GIT%bin;%PATH%
    
    rem Do something with Git ...
    
    :NOT_FOUND
    

    I should be straight forward to do something similar in .NET. Just remember that you have to explicitly check the 32-bit branch of the Registry if you're on a 64-bit Windows.

    Edit: Git for Windows 2.6.1 now additionally writes the CurrentVersion, InstallPath and LibexecPath values to the HKEY_LOCAL_MACHINE\Software\GitForWindows key.

    0 讨论(0)
提交回复
热议问题