Git bash home directory different from Git extension than Git Bash

Steve B picture Steve B · Dec 19, 2011 · Viewed 24.6k times · Source

If i run Git bash from Git Extention (CTRL+G), my home directory is %USERPROFILE%, which is ok.

If I run Git bash from the context menu of a git repo folder, or if I run Git bash from the start menu, my home directory is %HOME%, which is different.

How can I set up git bash to always use %USERPROFILE% as home directory (I have the .ssh folder within) ?

If it can help, on git bash run from Git Ext, I have :

$ echo $HOME
/c/Users/mylogin

Same command on git bash run directly :

$ echo $HOME
/h

h: is my corporate home directory

What can I do ?

Answer

VonC picture VonC · Dec 19, 2011

The git bash provided with msysgit in its repo is a script you can edit, in order to set HOME to %USERPROFILE%.
It is basically what it does by default, except if HOME is already defined, the git bash script won't modify that value (but you can, if you edit said script).

I suspect that, in your corporate environment, HOME is defined to a network drive, in order for various configuration files (maven, ssh, ...) to be stored on a remote, secure and backed-up drive.
That would explain why HOME is not changed by the Git bash script.
The Git Extension obviously isn't as careful as the first script, and will change/define whatever value it needs.


As the OP Steve B comments:

The HOME is set, for the Git bash, in etc/profile:

# Set up USER's home directory
if [ -z "$HOME" -o ! -d "$HOME" ]; then
  HOME="$HOMEDRIVE$HOMEPATH"
  if [ -z "$HOME" -o ! -d "$HOME" ]; then
    HOME="$USERPROFILE"
  fi
fi

I removed the first candidate home location, and it works.