102

When I punch from the windows gitbash command line:

set $HOME = c

and do :

echo $HOME

It does not set it to c? How can I change/set the value of an environment variable?

C. Augusto Proiete
  • 20,243
  • 2
  • 51
  • 71
bier hier
  • 17,692
  • 38
  • 82
  • 153

3 Answers3

132

A normal variable is set by simply assigning it a value; note that no whitespace is allowed around the =:

HOME=c

An environment variable is a regular variable that has been marked for export to the environment.

export HOME
HOME=c

You can combine the assignment with the export statement.

export HOME=c
chepner
  • 446,329
  • 63
  • 468
  • 610
54

If you want to set environment variables permanently in Git-Bash, you have two options:

  1. Set a regular Windows environment variable. Git-bash gets all existing Windows environment variables at startup.

  2. Set up env variables in .bash_profile file.

.bash_profile is by default located in a user home folder, like C:\users\userName\git-home\.bash_profile. You can change the path to the bash home folder by setting HOME Windows environment variable.

.bash_profile file uses the regular Bash syntax and commands

# Export a variable in .bash_profile
export DIR=c:\dir
# Nix path style works too
export DIR=/c/dir

# And don't forget to add quotes if a variable contains whitespaces
export ANOTHER_DIR="c:\some dir"

Read more information about Bash configurations files.

Alexandr
  • 674
  • 6
  • 7
  • 1
    You may not have answered the OP question but you have certainly helped me out with my question. I was trying to override the PERL5LIB environment variable for Git Bash on Windows and this allowed me to do it easily. – BebopSong Nov 17 '16 at 23:46
  • You might want to edit #1 to mention it's the same command as in a Windows shell except with different syntax (`setx foo bar` versus `setx foo=bar`). I misread what you were saying with that answer since you didn't mention setx. – Yodle Jul 18 '19 at 20:16
  • For some reason, Git Bash is ignoring my Windows' HOME environment variable. Meaning, it's not using my gitconfig but using its own inside Git/etc. – Unknow0059 Jan 08 '21 at 21:06
6

Creating a .bashrc file in your home directory also works. That way you don't have to copy your .bash_profile every time you install a new version of git bash.

kyleus
  • 971
  • 11
  • 14