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.
command.com
is the only shell included with the OS (b) You're on a 32-bit NT system and either invoked command.com
yourself, or an old program did it for you. See What is the difference between CMD and Command prompt in windows? for more info.
batch
file this worked for me: start "" "%PROGRAMFILES%\Git\git-bash.exe" --cd-to-home
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
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.
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
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 "" "%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.
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
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
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%
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.
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
To access the GIT BASH with the command line.
Simply visit the Git installation directory.
In my case it was.
C:\program\Git\bin\sh.exe
https://i.stack.imgur.com/bYbvE.png
Open command prompt and type bash
https://i.stack.imgur.com/1rpVO.png
BOOM..! now you have successfully accessed the GIT BASH from the command prompt.
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 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
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
Windows
Git bash default location C:\Program Files\Git\bin
So copy this folder path and paste it inside environment variables setting under system variables.
https://i.stack.imgur.com/J2DU4.png
start -> Environment Variables
https://i.stack.imgur.com/8gzzv.png
select Environment variable
https://i.stack.imgur.com/shc0F.png
Create a new environment variable like this
https://i.stack.imgur.com/UtuSn.png
Add environment variable gtbash %gtbash% in the path variable
https://i.stack.imgur.com/fDr9A.png
Now check by taking a new command prompt and typing sh
(close already opened terminal or cmd)
https://i.stack.imgur.com/4RHPk.png
Now live
something like this(GIF):
https://i.stack.imgur.com/CjsSW.gif
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
Success story sharing