我想编写一个小的构建助手工具,它将读取当前Git工作目录的一些属性,如最后一次提交哈希,是否有修改过的文件等等.我发现使用已安装的Git二进制文件比使用未知格式的压缩文件读取.git目录更容易.但我的工具必须尽可能便携.它适用于.NET应用程序,因此唯一的要求应该是.NET 2.0或更高版本.
现在我如何找到安装Git的路径?如果用户刚刚点击了Git安装程序,则会使用默认值.但它可能会有所不同.当我在git/bin中看到所有程序文件时,我真的不希望它出现在我的%PATH%中(像TortoiseGit这样的其他工具似乎也不需要).我没有在注册表中找到任何路径线索.
我可以使用什么算法来查找Git,这不是完整的文件系统扫描?(我已经说过它需要快吗?)
leo*_*loy 80
如果你在git bash shell里面(或者你可以打开),你可以使用 pwd -W
$ cd / && pwd -W
C:/Program Files (x86)/Git
Run Code Online (Sandbox Code Playgroud)
(我知道,这可能不是你想要的,而且它是非常基础的,但我花了一些时间来找到它,也许它对其他人有用).
ssc*_*rth 19
我正在使用以下批处理文件来找出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
Run Code Online (Sandbox Code Playgroud)
我应该直接在.NET中做类似的事情.请记住,如果您使用的是64位Windows,则必须显式检查注册表的32位分支.
编辑:混帐的Windows 2.6.1现在还写的CurrentVersion,InstallPath和LibexecPath值的HKEY_LOCAL_MACHINE\Software\GitForWindows关键.
小智 11
如果您在Windows 8及更高版本中,则可以按照以下步骤操作.
对我来说,它是"C:\ Users \\ AppData\Local\Programs\Git\cmd\git-gui.exe"
希望能帮助到你
小智 7
您也可以打开Git Bash并输入where git。它将返回机器上安装Git的路径。
| 归档时间: |
|
| 查看次数: |
84962 次 |
| 最近记录: |