Search code examples
gitgit-extensions

Git bash home directory different from Git extension than Git Bash


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 ?


Solution

  • 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.