How To Launch Git Bash from Windows Command Line?
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 haveC:\Program Files\Git
- for me it is was
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
orbash
orgit-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:
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, 2022Comments
-
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:
-
Launched Git Bash from Win 7 Start button
-
Used CTRL+ALT+DEL to identify the process as "sh.exe"
-
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 almost 11 yearsThanks @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 almost 11 yearsThanks @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 about 10 yearsIs 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 over 8 yearsI 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 almost 8 years@OviC Are you sure your edit is correct? "Program Files (x86)" only exists under x64 architecture for 32 bit programs.
-
Endoro almost 8 years@Drunix you are right, there is no "Program Files (x86)\" path in x86 systems. I did a rollback. Thanks.
-
Mark over 7 yearsNice answer, but the git-bash window closes immediately. Do you know how to disable auto-close after command finishes execution?
-
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 over 7 years[code] start "" "%ProgramFiles%\Git\git-bash.exe" [/code] works great!
-
Michael Kruglos about 7 yearsWhat if it's not installed on system drive? What if it's not installed in program files?
-
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 likels
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 over 5 yearsThanks! I was able to get this working with GIT_HOME as
C:\Program Files\Git
, and typinggit-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 typeecho %GIT_HOME%
-
Eric Hepperle - CodeSlayer2010 over 5 yearsThanks 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 about 5 yearsTo 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 almost 5 yearsThank you, this was a great addition. To add to this, when you have the
GIT_HOME
variable and you use thegit-bash
command (orgit-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 typeexit
to "logout" of the git bash and still retain the DOS prompt. -
Meir Gabay over 3 yearsThis also works when inside of a Windows Docker container, thanks
-
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"