查找安装在Windows系统上的Git的路径

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (214)

我想编写一个小型的BuildHelper工具,它将读取当前Git工作目录的一些属性,比如最后一个提交哈希,是否有修改的文件等等。我发现,使用已安装的Git二进制文件比以未知格式读取其压缩文件的.git目录更容易。但我的工具必须尽可能携带。它是为.NET应用程序设计的,因此唯一的需求应该是.NET 2.0或更高版本。

现在我如何找到安装Git的路径?如果用户刚刚通过Git安装程序单击了Git安装程序,就会使用默认的Git安装程序。但可能不一样。当我看到git/bin中的所有程序文件时,我真的不希望它出现在我的%path%(其他工具,比如TortoiseGit似乎也不需要)。我在注册表里没有找到任何路径线索。

我能用什么算法来找到Git,那不是一个完整的文件系统扫描吗?(我是不是说过要快一点?)

提问于
用户回答回答于

我使用下面的批处理文件来查找Git for Windows的安装位置:

@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
用户回答回答于

如果在git bash shell中(或者可以打开),可以使用pwd -W

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

扫码关注云+社区

领取腾讯云代金券