52

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.

Jez
  • 26,126
  • 29
  • 119
  • 210
  • I am running Git bash version 1.9.5-preview20150319 and ran the exact same test you ran, but for me, it worked. My `.bashrc` *was* run. The variable *was* set. Do you have a `.profile` or `.bash_profile` in the way? These will stop `.bashrc` from being run. – Wolf Aug 24 '15 at 17:24
  • Nope, I don't even have a `.profile` or `.bash_profile`. But were you using Git for Windows 2.5.0? – Jez Aug 24 '15 at 18:20

4 Answers4

87

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
Jez
  • 26,126
  • 29
  • 119
  • 210
  • 1
    It's not mintty per se but how git-bash.exe starts it. Long discussion about it here which basically ends with the installer being changed to create a .bash_profile like you describe: https://github.com/git-for-windows/git/issues/191 – Marc Stober Sep 01 '15 at 15:35
  • Solution still works today May 2020 on windows 10 git bash – bsheps May 14 '20 at 17:14
24

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
user932885
  • 395
  • 3
  • 8
3

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.

John Livermore
  • 28,549
  • 42
  • 117
  • 207
0

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.

code_cowboy
  • 536
  • 4
  • 17