Git Bash doesn't see my PATH

WindowsBashGit Bash

Windows Problem Overview


When I use Git Bash (on Windows), I cannot run any executable without specifying its full path, although it is located in a folder which is in my PATH variable. Looks like bash doesn't recognize it. Why? Can I fix it?

Windows Solutions


Solution 1 - Windows

Got it. As a Windows user, I'm used to type executable names without extensions. In my case, I wanted to execute a file called cup.bat. In a Windows shell, typing cup would be enough. Bash doesn't work this way, it wants the full name. Typing cup.bat solved the problem. (I wasn't able to run the file though, since apparently bash couldn't understand its contents)

One more reason to switch to posh-git..

Thanks @Tom for pointing me to the right direction.

Solution 2 - Windows

Maybe bash doesn't see your Windows path. Type env|grep PATH in bash to confirm what path it sees.

Solution 3 - Windows

Following @Daniel's comment and thanks to @Tom's answer, I found out that Git bash was indeed using the PATH but not the latest paths I recently installed. To work around this problem, I added a file in my home (windows) directory named:

.bashrc

and the content as follow:

PATH=$PATH:/c/Go/bin

because I was installing Go and this path contained the executable go.exe Now Git bash was able to recognize the command:

go

Perhaps just a system reboot would have been enough in my case, but I'm happy that this solution work in any case.

Solution 4 - Windows

While you are installing Git, you can select the option shown below, it'll help you to set the path automatically.

Git installation wizard

Its worked out for me :)

Solution 5 - Windows

Create a file in C:\Users\USERNAME which is called config.bashrc, containing:

PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space

Now move the file on the command line to the correct location:

mv config.bashrc .bashrc

Solution 6 - Windows

Restart the computer after has added new value to PATH.

Solution 7 - Windows

In case your git-bash's PATH presents but not latest and you don't want a reboot but regenerate your PATHs, you can try the following:

  • Close all cmd.exe, powershell.exe, and git-bash.exe and reopen one cmd.exe window from the Start Menu or Desktop context.
  • If you changed system-wide PATH, you may also need to open one privileged cmd window.
  • Open Git bash from Windows Explorer context menu and see if the PATH env is updated. Please note that the terminal in IntelliJ IDEA is probably a login shell or some other kind of magic, so PATH in it may won't change until you restart IDEA.
  • If that does not work, you may need to close all Windows Explorer process as well and retry the steps above.

Note: This doesn't work with all Windows versions, and open cmd.exe anywhere other than the Start Menu or Desktop context menu may not work, tested with my 4 computers and 3 of them works. I didn't figure out why this works, but since the PATH environment variable is generated automatically when I login and logout, I'd not to mess up that variable with variable concatenation.

Solution 8 - Windows

Old question but it can help someone else.

I've changed my PATH user wide, after that I've just logoff and login again.

That is it! git bash loaded the new PATH value correctly.

Solution 9 - Windows

I can confirm that restarting the system will make sure that the PATH set in the environment variable in windows is picked up by git and there is no other automatic way.

Solution 10 - Windows

I know it is an old question but there's two type of environment variables. The one owned with User and the one system wide. Depending how do you open git bash (with user privilege or with administrator privilege) the environment variable PATH used can be from you User variables or from System variables. See below: enter image description here

as said in a previous answer, check with the command env|grep PATH to see which one you are using and update your variable accordingly. BTW, no need to reboot the system. Just close and reopen the git bash

Solution 11 - Windows

It seems the root cause here is Git Bash not able to always parse the variable %USERPROFILE% correctly. Instead of making it relative to C:\Users<UserName>\ it gets the value C:\Windows\System 32\systemprofile
After changing this to a fully qualified address, it Works, and even if I set it back afterwards, Git Bash still has the correct PATH for some reason.

Solution 12 - Windows

I meet this problem when I try to use mingw to compile the xgboost lib in Win10. Finally I found the solution.

Create a file named as .bashrc in your home directory (usually the C:\Users\username). Then add the path to it. Remember to use quotes if your path contains blank, and remember to use /c/ instead of C:/

For example:

PATH=$PATH:"/c/Program Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin"

Solution 13 - Windows

On Windows 10, just uninstall git and install it again. It will set the environment variable automatically for you. I had removed the environment variable by mistake and I couldn't use git inside my IDE. Reinstalling git fixed this issue.

Solution 14 - Windows

For me the most convenient was to:

  1. Create directory "bin" in the root of C: drive
  2. Add "C:/bin;" to PATH in "My Computer -> Properties -> Environemtal Variables"

Solution 15 - Windows

Don't escape (\) special characters when editing/adding to your $PATH variable. For example, an application directory in program files would look like: PATH=$PATH:/c/Program Files (x86)/random/application

Don't do this:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Hope this helps.

Solution 16 - Windows

I've run into a stupid mistake on my part. I had a systems wide and a user variable path set for my golang workspace on my windows 10 machine. When I removed the redundant systems variable pathway and logged off and back on, I was able to call .exe files in bash and call go env with success.

Although OP has been answered this is another problem that could keep bash from seeing your pathways. I just tested bash again with this problem and it does seem to give a conflict of some sort that blocks bash from following either of the paths.

Solution 17 - Windows

In my case It happened while installing heroku cli and git bash, Here is what i did to work.

got to this location

C:\Users\<username here>\AppData\Local

and delete the file in my case heroku folder. So I deleded folder and run cmd. It is working

Solution 18 - Windows

Git bash terminal on windows operating system have capability to read system path / user path and run the apps but it might miss in following cases

  1. App is added to environment variables without closing terminal
  2. MSYS / MinGW is converting your path
  3. App command your trying to use common alias name instead of original way of calling

Use Case - 1 :

Restart terminals should work and use below command to verify your path

env|grep PATH

Use Case - 2 :

let me explain with an example docker won't work directly on the git bash terminal, for such apps MSYS is converting it origin path. for such issues you might need to tell your terminal ignore path conversion using command MSYS_NO_PATHCONV=1 and proceed with your actual execution command, say for example docker --help should be like below

MSYS_NO_PATHCONV=1  MSYS_NO_PATHCONV=1 docker run -dp 3000:3000 -w /app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev"
717d12b9fe5211f0189ccbed0ba056ca242647812627682d0149ede29af472a4 

Use Case - 3 : let me explain with an example az cli, ideally az cli install in windows as az.cmd which is added to system/user path. on windows operating system either powershell or command prompt recognize az.cmd as az but git bash won't understand it - so you have use alias to avoid the confusion say alias az='az.cmd' and then execute az --help will work for you

Solution 19 - Windows

For those of you who have tried all the above mentioned methods including Windows system env. variables, .bashrc, .bashprofile, etc. AND can see the correct path in 'echo $PATH' ... I may have a solution for you.

suppress the errors using exec 2> /dev/null

My script runs fine but was throwing 'command not found' or 'No directory found' errors even though, as far as I can tell, the paths were flush. So, if you suppress those errors (might have to also add 'set +e'), than it works properly.

Solution 20 - Windows

Create a User variable named Path and add as value %Path%, from what I noticed Git Bash only sees User Variables and not System Variables. By doing the mentioned procedure you'll expose your System Variable in the User Variables.

Solution 21 - Windows

In Windows 7 Path Environment Variables I just add at the end of System Variable path

;C:\Program Files\Git\bin

and it works now!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionuluView Question on Stackoverflow
Solution 1 - WindowsuluView Answer on Stackoverflow
Solution 2 - WindowsTomView Answer on Stackoverflow
Solution 3 - WindowsMikaël MayerView Answer on Stackoverflow
Solution 4 - WindowsMuthamizhchelvan. VView Answer on Stackoverflow
Solution 5 - WindowsSmile4everView Answer on Stackoverflow
Solution 6 - WindowsPavelView Answer on Stackoverflow
Solution 7 - WindowsZhwtView Answer on Stackoverflow
Solution 8 - WindowsfernandosavioView Answer on Stackoverflow
Solution 9 - WindowsPramod AlagambhatView Answer on Stackoverflow
Solution 10 - WindowsLionHView Answer on Stackoverflow
Solution 11 - WindowsJakobNView Answer on Stackoverflow
Solution 12 - WindowsFlamingoView Answer on Stackoverflow
Solution 13 - Windowsromin21View Answer on Stackoverflow
Solution 14 - WindowsMike JView Answer on Stackoverflow
Solution 15 - WindowsAdam ParsonsView Answer on Stackoverflow
Solution 16 - WindowsNewbieCritView Answer on Stackoverflow
Solution 17 - WindowscodingwithtashiView Answer on Stackoverflow
Solution 18 - WindowsGandikota SaikoushikView Answer on Stackoverflow
Solution 19 - WindowsClickerTweekerView Answer on Stackoverflow
Solution 20 - WindowsbroilogabrielView Answer on Stackoverflow
Solution 21 - WindowsKenneth IsraelView Answer on Stackoverflow