Under Windows 7 I have a batch file for checking the status of some repos and outputting the returns to a file (with standard powershell issued git commands).
This w
It looks like your git executable is just not accessible for command line use.
Just add c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\bin
(or c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\cmd
) to your Path variable. Replacing [your_login]
and [hash]
with actual data.
But I believe the location of files will change from version to version, so if you're heavy git user, consider installing msysGit. It will add its executable to the system path automatically (corresponding option available during setup).
Even more, there is the project called mysysGit-UTF8 claiming that they have full UTF-8 support on Windows. I didn't notice the difference, through.
If you consider what git-cmd.bat does, all you need to do is to set the right variable %PATH%
before your git commands in your script:
If you don't, here is what you would see:
C:\Users\VonC>git --version
'git' is not recognized as an internal or external command,
operable program or batch file.
I have uncompressed the latest portable version of msysgit.
Put anywhere a test.bat
script (so no powershell involved there) with the following content:
@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
Make sure HOME
is correctly set, because Git will look for your global git config there.
The result will give you:
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
Note: that same script would work perfectly from a powershell session.