How To Launch Git Bash from Windows Command Line?
Asked Answered
C

12

159

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.

Churchgoer answered 25/6, 2013 at 16:44 Comment(3)
Well, it's not actually the DOS command line unless: (a) You've encountered some kind of time anomaly and are using Windows 9x/ME, where 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.Sequence
For batch file this worked for me: start "" "%PROGRAMFILES%\Git\git-bash.exe" --cd-to-homePositron
If you want to start in a specific folder use start "D:\MyNiceFolder" "%PROGRAMFILES%\Git\bin\sh.exe" --login. Its even better to pin a shortcut in start menu by following this article.Deerdre
S
170

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
    
Sowens answered 25/6, 2013 at 20:11 Comment(7)
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!Churchgoer
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?Nesmith
@OviC Are you sure your edit is correct? "Program Files (x86)" only exists under x64 architecture for 32 bit programs.Bradstreet
@Bradstreet you are right, there is no "Program Files (x86)\" path in x86 systems. I did a rollback. Thanks.Sowens
What if it's not installed on system drive? What if it's not installed in program files?Soulful
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.Mcclanahan
@Nesmith 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"Synchro
A
71

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.

Arias answered 25/6, 2013 at 16:50 Comment(3)
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.Churchgoer
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" --loginPaugh
This also works when inside of a Windows Docker container, thanksThoughtout
A
38

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 :)

Alejandraalejandrina answered 14/3, 2016 at 1:15 Comment(7)
Nice answer, but the git-bash window closes immediately. Do you know how to disable auto-close after command finishes execution?Pentobarbital
@Pentobarbital 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 :)Alejandraalejandrina
[code] start "" "%ProgramFiles%\Git\git-bash.exe" [/code] works great!Overage
@Overage 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.Churchgoer
@Overage @EricHepperle-CodeSlayer2010 As of 2024 @start "" "C:\Program Files\Git\git-bash.exe" works great for me.Jsandye
@Alejandraalejandrina Could you please explain the meaning of ` -c "tail -f /c/Windows/win.ini"` or ` -c "echo 1 && echo 2 && /usr/bin/bash --login -i"`? Thanks in advance.Jsandye
For git-bash options, see this answer: superuser.com/a/1730835/391675Jsandye
A
18

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
Ashbaugh answered 24/7, 2018 at 23:37 Comment(2)
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%Churchgoer
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.Cobnut
L
8

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

Lone answered 13/6, 2020 at 23:18 Comment(0)
I
6

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

Copy and paste that path to an environment variable. enter image description here

Open command prompt and type bash

enter image description here

BOOM..! now you have successfully accessed the GIT BASH from the command prompt.

Incognito answered 10/2, 2022 at 1:18 Comment(0)
O
4
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i

Git bash will get open.

Only answered 8/5, 2014 at 11:59 Comment(0)
S
3

https://mcmap.net/q/152514/-how-do-i-write-a-batch-file-which-opens-the-gitbash-shell-and-runs-a-command-in-the-shell

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.

Somnifacient answered 27/10, 2015 at 12:32 Comment(0)
C
3

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
Capful answered 29/7, 2018 at 14:37 Comment(1)
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. thanksChurchgoer
T
2

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.

enter image description here

start -> Environment Variables

enter image description here

select Environment variable

enter image description here

Create a new environment variable like this

enter image description here

Add environment variable gtbash %gtbash% in the path variable

enter image description here

Now check by taking a new command prompt and typing sh (close already opened terminal or cmd)

enter image description here

Now live

something like this(GIF):

enter image description here

Twinned answered 12/2, 2022 at 10:29 Comment(0)
O
0

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
Os answered 12/4, 2016 at 13:3 Comment(0)
P
0

If you want to start a "Git Gash" window from "Git Bash" window, so "start bash" will do the work in windows 10.

Prominent answered 25/11, 2022 at 12:24 Comment(1)
As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.Ecclesiastes

© 2022 - 2024 — McMap. All rights reserved.