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 DOS 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 DOS batch scripting.
If you want to launch from a batch file:
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.
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 :)
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i
Git bash will get open.
https://stackoverflow.com/a/33368029/15789
I have posted an answer here.
Open a Windows command window, and execute this script. If there is a change in your working directory, it will open a bash terminal in your working directory, and display the current git status. It keeps the bash window open, by calling exec bash.
If you have multiple projects you may create copies of this script with different project folder, and call it from a main batch script.
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 System Variables (or User variables), hit button new, put variable name as GIT_HOME, value as ; for me it is c:\tools\git
- find the PATH environment variable and select it. Click Edit. If the PATH environment variable does not exist, click New.
- In the Edit System Variable (or New System Variable) window, add to exiting value
;%GIT_HOME%/bin;%GIT_HOME%;
. Click OK. Close all remaining windows by clicking OK.
- open new Command prompt window, and just type
sh.exe or sh or bash.exe or git-bash
I used the info above to help create a more permanent solution. The following will create the alias sh that you can use to open Git Bash:
echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat
The answer by Endoro has aged and I'm unable to comment;
# if you want to launch from a batch file or the command line:
start "" "%ProgramFiles%\Git\bin\sh.exe" --login