How To Launch Git Bash from Windows Command Line?

203,603

Solution 1

If you want to launch from a batch file:

  • for x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • for x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    

Solution 2

I'm not sure exactly what you mean by "full Git Bash environment", but I get the nice prompt if I do

"C:\Program Files\Git\bin\sh.exe" --login

In PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

The --login switch makes the shell execute the login shell startup files.

Solution 3

I prefer to use git-bash.exe instead of sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

You can stop closing the window when call /usr/bin/bash --login -i in the end;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

Note: I'm not sure this is a good way :)

Solution 4

I prefer, putting git in environment variable and just calling

c:\Users\[myname]>sh
or 
c:\Users\[myname]>bash

Steps to create Environment variable (Win7)

  • From the desktop, right click the Computer icon.
  • Choose Properties from the context menu.
  • Click the Advanced system settings link.
  • Click Environment Variables.
  • In the section User variables, hit button NEW, put variable name as GIT_HOME, value as (folder-where-you-installed-git).

    • for me it is was c:\tools\git, others maybe have C:\Program Files\Git
  • find the PATH environment variable and select it. Click Edit. (If the PATH environment variable does not exist, click New).

  • In the Edit window, add a new value %GIT_HOME% and %GIT_HOME%\bin. Click OK. Close all remaining windows by clicking OK.
  • [Make sure you close the CMD which you want use for git]
  • open new Command prompt, and just type sh or bash or git-bash

Solution 5

You can add git path to environment variables

  • For x86

%SYSTEMDRIVE%\Program Files (x86)\Git\bin\

  • For x64

%PROGRAMFILES%\Git\bin\

Open cmd and write this command to open git bash

sh --login

OR

bash --login

OR

sh

OR

bash

You can see this GIF image for more details:

https://media1.giphy.com/media/WSxbZkPFY490wk3abN/giphy.gif

Share:
203,603
Eric Hepperle - CodeSlayer2010
Author by

Eric Hepperle - CodeSlayer2010

Enterprise Engineer at Applied Value Technologies Currently Learning: ReactJS, ReactDOM, JavaScript ES7, Hacklang, Flow Previous Roles: Sr. Software Analyst ✦Jr. PHP Developer ✦Graphic Designer ✦Desktop Publisher Hobbies: Bodybuilding, Graphic Design, Web Scraping, Research, Technical Writing

Updated on February 13, 2022

Comments

  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 about 2 years

    I've got what I'm hoping is a simple question, but I haven't been able to find the answer yet. I would like to launch Git Bash from a Windows batch file. Here is what I tried so far:

    1. Launched Git Bash from Win 7 Start button

    2. Used CTRL+ALT+DEL to identify the process as "sh.exe"

    3. Launched sh.exe from batch file using start command

       start sh.exe
      

    However, this does not launch the full Git Bash environment. Git Bash usually has "MINGW32" in the title bar, but sh.exe has a full path to ... Git\bin\sh.exe. It feels to me like there are some overlays or dependencies that I'm not aware of possibly, that also need to be loaded (pulled in? imported?).

    This was one of the top results I found through searching the web, but it doesn't make complete sense to me and I'm not sure if it applies exactly to my situation:

    Running git from Windows Cmd line: Where are key files?

    I'm a beginner in the world of Windows batch scripting.

  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 almost 11 years
    Thanks @Endoro! Though @Klas Mellbourn's answer was correct for Powershell, yours is more correct since I'm running from DOS batch file. The addition of the "start" directive causes the program to execute asynchronously, which is exactly what I need! Thumbs up!
  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 almost 11 years
    Thanks @Klas Mellbourn. Your answer is good for Powershell, but without the addition of the "start" directive as in Endoro's answer, it halts execution of the next program until the shell is exited, which is not the desired behavior, otherwise I would have voted you up.
  • Nick
    Nick about 10 years
    Is there a way to type and an execute a command into the Git batch window after it's opened from within the batch file?
  • Grault
    Grault over 8 years
    I use Console2 to window cmd, and this causes strange behavior. I put this in a .bat file and now all is well: @"%SYSTEMDRIVE%\Program Files\Git\bin\bash.exe" --login
  • Drunix
    Drunix almost 8 years
    @OviC Are you sure your edit is correct? "Program Files (x86)" only exists under x64 architecture for 32 bit programs.
  • Endoro
    Endoro almost 8 years
    @Drunix you are right, there is no "Program Files (x86)\" path in x86 systems. I did a rollback. Thanks.
  • Mark
    Mark over 7 years
    Nice answer, but the git-bash window closes immediately. Do you know how to disable auto-close after command finishes execution?
  • kujiy
    kujiy over 7 years
    @Mark Thanks Mark. I added an example to my answer above. Unfortunately I'm not sure how we should do that in the right way because I'm not a windows person :)
  • PauAI
    PauAI over 7 years
    [code] start "" "%ProgramFiles%\Git\git-bash.exe" [/code] works great!
  • Michael Kruglos
    Michael Kruglos about 7 years
    What if it's not installed on system drive? What if it's not installed in program files?
  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 over 5 years
    @PauAI 2018 now... I tried start "" "%ProgramFiles%\Git\git-bash.exe" from an administrator command line, and though it brings up Git Bash in a new window, typing a simple command like ls results in no output. This method doesn't seem to allow execution of linux commands. ... EDIT: Worked, just took a long time (2 minutes) to run ls. Then ls again ran in less than 1 sec. ... weird.
  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 over 5 years
    Thanks! I was able to get this working with GIT_HOME as C:\Program Files\Git, and typing git-bash from CMD. Also, strangely, although you only have to type PATH to see its contents, to see contents of this git custom variable you must type echo %GIT_HOME%
  • Eric Hepperle - CodeSlayer2010
    Eric Hepperle - CodeSlayer2010 over 5 years
    Thanks dpate! I pasted your echo statement into the command line and ran sh and a git-bash window launched and I was able to run commands perfectly. Can add a little detail to your answer explaining how this works? I'd rather learn how fishing works than have somebody give me a fish, and I think it will benefit others looking for a good answer. thanks
  • R. Davidson
    R. Davidson about 5 years
    To clarify for those confused, use the Program Files (x86) version only if you have a 64 bit system, and wish to use the 32 bit version of sh.exe. In all other cases (32 on 32 or 64 on 64), Program Files is correct.
  • Keith E. Truesdell
    Keith E. Truesdell almost 5 years
    Thank you, this was a great addition. To add to this, when you have the GIT_HOME variable and you use the git-bash command (or git-cmd ) it will open it in a new window. If you add to the "PATH" environment variable, it will switch in that existing window. You can also type exit to "logout" of the git bash and still retain the DOS prompt.
  • Meir Gabay
    Meir Gabay over 3 years
    This also works when inside of a Windows Docker container, thanks
  • ssh
    ssh almost 3 years
    @Nick yes. To type a command into Git bash window you add -i -c, e.g. `start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login -i -c "the command"