Если вы считаете, что git-cmd.bat
делает все, что вам нужно сделать, это установить правильную переменную %PATH%
перед вашими командами Git в вашем скрипте:
Если вы этого не сделаете, вот что вы увидите:
C:\Users\VonC>git --version
'git' is not recognized as an internal or external command,
operable program or batch file.
У меня несжатый latest portable version of msysgit.
Помещенный где-нибудь в test.bat
скрипт (так что никаких PowerShell не участвует там) следующего содержания:
@setlocal
@set git_install_root="C:\Users\VonC\prg\PortableGit-1.7.11-preview20120620"
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
@set PLINK_PROTOCOL=ssh
REM here is the specific git commands of your script
git --version
echo %HOME%
git config --global --list
Убедитесь, что HOME
правильно установлен, так как Git будет выглядеть ваш глобальный мерзавца конфиге там.
Результат даст вам:
C:\Users\VonC>cd prog\git
C:\Users\VonC\prog\git>s.bat
C:\Users\VonC\prog\git>git --version
git version 1.7.11.msysgit.0
C:\Users\VonC\prog\git>echo C:\Users\VonC
C:\Users\VonC
C:\Users\VonC\prog\git>git config --global --list
user.name=VonC
Примечания: тот же сценарий будет работать отлично от Powershell сессии.
Вопрос: Какая версия git для окон у вас есть? Я боролся с установкой msys Git для win (7), но некоторые команды потребовали времени для завершения ... Теперь получил git только через cygwin. – bcelary
У меня есть 1.7.11.rc1.6953.gf229a20 - Был установлен с новым приложением Windows GitHub – Ing
Можете ли вы сделать простые команды git от Powershell? Другими словами, требуется ли оболочка git делать что-либо с git? Если вы можете получить доступ к git из Powershell, вы можете переписать свой командный файл как скрипт powershell. Кроме того, вы должны иметь возможность запускать пакетный файл из Powershell, если он не устанавливает env vars (если это так, выполните поиск «Invoke-CmdScript» в Google). – David