Git for Windows doesn't execute my .bashrc file

WindowsGitBashWindows 7

Windows Problem Overview


I've just installed Git for Windows 2.5.0 on Windows 7, and it appears that my .bashrc file is not being executed when I run Git Bash.

I created the file like so:

Administrator@HintTech-Dev MINGW64 /
$ pwd
/

Administrator@HintTech-Dev MINGW64 /
$ cd ~

Administrator@HintTech-Dev MINGW64 ~
$ pwd
/c/Users/Administrator

Administrator@HintTech-Dev MINGW64 ~
$ touch .bashrc

Administrator@HintTech-Dev MINGW64 ~
$ vi .bashrc

[... I insert the line "ZZZTESTVAR=234" (without the quotes) into the file in vim ...]

Administrator@HintTech-Dev MINGW64 ~
$ exit

Yet, when I next run Git Bash:

Administrator@HintTech-Dev MINGW64 /
$ set | grep ZZZ

Administrator@HintTech-Dev MINGW64 /
$ cat ~/.bashrc
ZZZTESTVAR=234

Administrator@HintTech-Dev MINGW64 /
$ ZZZTESTVAR=234

Administrator@HintTech-Dev MINGW64 /
$ set | grep ZZZ
ZZZTESTVAR=234

Administrator@HintTech-Dev MINGW64 /
$

Why isn't my .bashrc being run? It seems to be in the right place and have the right permissions.

Windows Solutions


Solution 1 - Windows

OK, I found out the problem. Quite simply, the bash terminal used by the latest Git for Windows 2.5.0 (mintty) doesn't bother to read .bashrc - it reads .bash_profile. So you can set up your environment in .bash_profile and/or put this code at the start to read .bashrc:

if [ -f ~/.bashrc ]
then
    . ~/.bashrc
fi

Solution 2 - Windows

Same thing happened to me when I upgraded to Git Bash 2.5.0 in Windows 10. I renamed my '.bashrc' -> '.bash_profile' and relaunched Git Bash. Everything's working as usual again.

mv ~/.bashrc ~/.bash_profile

Solution 3 - Windows

It appears the latest version of git for Windows (2.8.3.windows.1) uses a 'profile' file now instead of the .bash_profile. I assume this is so it isn't hidden and a valid file name. Didn't seem to cause any issues before, but maybe it was confusing to people.

Solution 4 - Windows

A bit late on this answer perhaps, but you could call bash with the -rcfile argument followed by the location of your .bashrc file.

bash -rcfile C:\Users\name\.bashrc

I've added this to the end of my PowerShell profile (.ps1 file) so that Powershell automatically opens in bash and configured to my preferences.

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
QuestionJezView Question on Stackoverflow
Solution 1 - WindowsJezView Answer on Stackoverflow
Solution 2 - Windowsuser932885View Answer on Stackoverflow
Solution 3 - WindowsJohn LivermoreView Answer on Stackoverflow
Solution 4 - Windowscode_cowboyView Answer on Stackoverflow