Running a batch file in git shell

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 works fine when launched from git shell, my question is how can I do this without launching git shell first?

  • Start Tomcat on Console from Jenkins
  • Run batch file with git pull in gitbash
  • Wrapping an SVN Python hook in a Windows batch file
  • How to convert Windows path to file: URL, in a batch file, suitable for SVN command line use
  • Jenkins won't execute correctly a command from a .bat
  • command line version control with Java — dealing with lots of nested dirs
  • So I want to be able to enter in a standard prompt or in a runnable batch file a command / commands which will launch a given batch file in git shell.

  • In GIT, how can I prevent people from changing or removing commits that have already been pushed?
  • submodule bare repo issue
  • Error 0x2 starting node.exe -v in Git bash for Windows
  • Is it possible to use BitBucket with GitEye?
  • How can I deny a commit, in a client-side hook, if the user name/email is incorrect?
  • What are pros and cons of using git-svn?
  • 2 Solutions collect form web for “Running a batch file in git shell”

    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.

    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.

    Git Baby is a git and github fan, let's start git clone.