Программно (не вручную) найти путь, по которому Git установлен в системе Windows
Я хотел бы написать небольшой помощник для сборки, который должен прочитать некоторые свойства текущего рабочего каталога Git, например, последний хеш фиксации, независимо от того, были ли изменены файлы и т.д. Я обнаружил, что проще использовать установленные двоичные файлы Git вместо чтения каталога .git со сжатыми файлами в неизвестном формате. Но мои инструменты должны быть как можно более переносимыми. Он предназначен для приложений .NET, поэтому единственным требованием должен быть .NET 2.0 или новее.
Теперь, как я могу найти путь, где установлен Git? Там по умолчанию используется тот, который используется, если пользователь только что нажал кнопку Git. Но это может быть иначе. И когда я вижу все файлы программы в git/bin, я действительно не хочу, чтобы это было в моем% PATH% (что, похоже, тоже не требует других инструментов, таких как TortoiseGit). Я не нашел никаких путей в реестре.
Какой алгоритм я могу использовать для поиска Git, который не является полным сканированием файловой системы? (Я уже говорил, что нужно быть быстрым?)
Ответы
Ответ 1
Я использую следующий пакетный файл, чтобы узнать, где установлена Git для Windows:
@echo off
setlocal enabledelayedexpansion
rem Прочтите путь установки Git для Windows из реестра.
для %% k in (HKCU HKLM) do ( для %% 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' ) делать ( для /f "tokens = 3" %% z in ( "%% a" ) do ( set GIT = %% z: %% b echo Найден Git в "! GIT!". goto НАЙДЕНО ) ) )
)
goto NOT_FOUND
:НАЙДЕННЫЙ
rem Убедитесь, что Bash находится в PATH (для запуска скриптов).
set PATH =% GIT% bin,% PATH%
Сделайте что-нибудь с Git...
:НЕ НАЙДЕНО
Код>
Я должен быть прямым, чтобы сделать что-то подобное в .NET. Просто помните, что вы должны явно проверить 32-разрядную ветвь реестра, если вы находитесь в 64-разрядной Windows.
Изменить: Git для Windows 2.6.1 теперь дополнительно записывает значения CurrentVersion
, InstallPath
и LibexecPath
в HKEY_LOCAL_MACHINE\Software\GitForWindows
ключ.
Ответ 2
Если вы находитесь внутри (или можете открыть) свою оболочку git bash, вы можете использовать pwd -W
$ cd / && pwd -W
C:/Program Files (x86)/Git
(Я знаю, это, вероятно, не то, что вы хотите, и это довольно элементарно, но я потратил некоторое время, чтобы найти это, и, возможно, это полезно для других людей).
Ответ 3
Если вы находитесь в Windows 8 и выше, выполните действия, которые вы можете выполнить.
- перейдите на экран запуска и найдите git.exe
- В результатах поиска щелкните правой кнопкой мыши значок Git Gui/Git Bash и выберите "Открыть расположение файла"
- Вы отправитесь в дом, где будут расположены ярлыки. Щелкните правой кнопкой мыши ярлык и выберите свойства
- расположение файла можно найти в поле "Цель"
Для меня это было "C:\Users\\AppData\Local\Programs\ Git\cmd\git -gui.exe"
Надеюсь, что это поможет
Ответ 4
Вы также можете открыть Git Bash и ввести where git
. Он вернет путь, где Git установлен на вашем компьютере.
Ответ 5
Я нашел git.exe в C:\Program Files\Git\cmd\git.exe
Ответ 6
git --man-path
возвращает вас в [каталог установки git]\mingw64\share\man. git.exe находится в каталоге [каталог установки git]\cmd.
Ответ 7
загляните в реестр в разделе: HKEY_CURRENT_USER\Software\ Git -Cheetah
Ответ 8
Вы можете найти его в реестре Windows под
HKEY_LOCAL_MACHINE\SOFTWARE\GitForWindows\InstallPath