# Location of git config on Windows

11 messages from 2014-08-17 to 2014-08-18. Participants: Daniel Corbe, Jason Pyeron, Erik Faye-Lund, Karsten Blees.
Thread: https://gitlist.dev/t/37367

## Daniel Corbe, 2014-08-17 20:18

Subject: Location of git config on Windows
Message-ID: <ygfvbpqooog.fsf@corbe.net>
URL: https://gitlist.dev/e/ygfvbpqooog.fsf%40corbe.net

```

I installed git on my Windows machine while it was connected to my
corporate network.  It picked up on that fact and used a mapped drive to
store its configuration file.  

As a result, I cannot currently use git when disconnected from my
network.  It throws the following error message: fatal: unable to access
'Z:\/.config/git/config': Invalid argument

Obviously this value is stored in the registry somewhere because I made
an attempt to uninstall and reinstall git with the same results.  

Can someone give me some guidance here?

Best,
Daniel

P.S. A screenshot for reference: http://i.imgur.com/i9lm0Da.png

```

## Jason Pyeron, 2014-08-17 21:40

Subject: RE: Location of git config on Windows
Message-ID: <C9491BC51199409292463C10D606F256@black>
URL: https://gitlist.dev/e/C9491BC51199409292463C10D606F256%40black
In-Reply-To: <ygfvbpqooog.fsf@corbe.net>

```
> -----Original Message-----
> From: Daniel Corbe
> Sent: Sunday, August 17, 2014 16:18
> 
> 
> I installed git on my Windows machine while it was connected to my
> corporate network.  It picked up on that fact and used a 
> mapped drive to
> store its configuration file.  
> 
> As a result, I cannot currently use git when disconnected from my
> network.  It throws the following error message: fatal: 
> unable to access
> 'Z:\/.config/git/config': Invalid argument

As a workaround, use subst command to map the Z: to another path on your system.

Depending on your OS and your git usage patterns you may have to perform the operation twice at both non-privilged and priviliged prompts.

Ex: 

 subst z: c:\Users\corbed\cached-z-drive

> 
> Obviously this value is stored in the registry somewhere 
> because I made
> an attempt to uninstall and reinstall git with the same results.  
> 
> Can someone give me some guidance here?
> 

-Jason 

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Jason Pyeron                      PD Inc. http://www.pdinc.us -
- Principal Consultant              10 West 24th Street #100    -
- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.

```

## Erik Faye-Lund, 2014-08-17 22:01

Subject: Re: Location of git config on Windows
Message-ID: <CABPQNSZDizccths0b_RZ5FXYYq=+4_2N35DMj9h4Rha_2voekw@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSZDizccths0b_RZ5FXYYq%3D%2B4_2N35DMj9h4Rha_2voekw%40mail.gmail.com
In-Reply-To: <ygfvbpqooog.fsf@corbe.net>

```
On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe <corbe@corbe.net> wrote:
>
> I installed git on my Windows machine while it was connected to my
> corporate network.  It picked up on that fact and used a mapped drive to
> store its configuration file.
>
> As a result, I cannot currently use git when disconnected from my
> network.  It throws the following error message: fatal: unable to access
> 'Z:\/.config/git/config': Invalid argument
>
> Obviously this value is stored in the registry somewhere because I made
> an attempt to uninstall and reinstall git with the same results.
>
> Can someone give me some guidance here?

Git looks for the per-user configuration in $HOME/.gitconfig, and if
$HOME is not set, it falls back to $HOMEDIR/$HOMEPATH/.gitconfig. My
guess would be some of these environment variables are incorrectly set
on your system.

```

## Karsten Blees, 2014-08-17 23:08

Subject: Re: Location of git config on Windows
Message-ID: <53F135F8.60508@gmail.com>
URL: https://gitlist.dev/e/53F135F8.60508%40gmail.com
In-Reply-To: <CABPQNSZDizccths0b_RZ5FXYYq=+4_2N35DMj9h4Rha_2voekw@mail.gmail.com>

```
Am 18.08.2014 00:01, schrieb Erik Faye-Lund:
> On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>
>> I installed git on my Windows machine while it was connected to my
>> corporate network.  It picked up on that fact and used a mapped drive to
>> store its configuration file.
>>
>> As a result, I cannot currently use git when disconnected from my
>> network.  It throws the following error message: fatal: unable to access
>> 'Z:\/.config/git/config': Invalid argument
>>
>> Obviously this value is stored in the registry somewhere because I made
>> an attempt to uninstall and reinstall git with the same results.
>>
>> Can someone give me some guidance here?
> 
> Git looks for the per-user configuration in $HOME/.gitconfig, and if
> $HOME is not set, it falls back to $HOMEDIR/$HOMEPATH/.gitconfig. My
> guess would be some of these environment variables are incorrectly set
> on your system.

To be precise, git checks if %HOME% is set _and_ the directory exists before
falling back to %HOMEDRIVE%%HOMEPATH%.

If %HOMEDRIVE%%HOMEPATH% isn't set or the directory doesn't exist either, it
falls back to %USERPROFILE%, which is always local (C:/Users/<yourname>), even
if disconnected from the network (at least that's how its supposed to be).

```

## Daniel Corbe, 2014-08-18 15:14

Subject: Re: Location of git config on Windows
Message-ID: <ygflhqlvni7.fsf@corbe.net>
URL: https://gitlist.dev/e/ygflhqlvni7.fsf%40corbe.net
In-Reply-To: <53F135F8.60508@gmail.com>

```

Karsten Blees <karsten.blees@gmail.com> writes:

> Am 18.08.2014 00:01, schrieb Erik Faye-Lund:
>> On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>>
>>> I installed git on my Windows machine while it was connected to my
>>> corporate network.  It picked up on that fact and used a mapped drive to
>>> store its configuration file.
>>>
>>> As a result, I cannot currently use git when disconnected from my
>>> network.  It throws the following error message: fatal: unable to access
>>> 'Z:\/.config/git/config': Invalid argument
>>>
>>> Obviously this value is stored in the registry somewhere because I made
>>> an attempt to uninstall and reinstall git with the same results.
>>>
>>> Can someone give me some guidance here?
>> 
>> Git looks for the per-user configuration in $HOME/.gitconfig, and if
>> $HOME is not set, it falls back to $HOMEDIR/$HOMEPATH/.gitconfig. My
>> guess would be some of these environment variables are incorrectly set
>> on your system.
>
> To be precise, git checks if %HOME% is set _and_ the directory exists before
> falling back to %HOMEDRIVE%%HOMEPATH%.
>
> If %HOMEDRIVE%%HOMEPATH% isn't set or the directory doesn't exist either, it
> falls back to %USERPROFILE%, which is always local (C:/Users/<yourname>), even
> if disconnected from the network (at least that's how its supposed to be).
>
>

Awesome!  Thanks for the advice. 

%HOMEDRIVE% and %HOMEPATH% are indeed set by my system and point to an
 (often disconnected) network drive.  I manually forced %HOME% to
 %USERPROFILE% and it works like a charm now.  

I would argue that on Windows %USERPROFILE% should be checked first (or
at least after %HOME%).

Best,
Daniel

```

## Erik Faye-Lund, 2014-08-18 15:25

Subject: Re: Location of git config on Windows
Message-ID: <CABPQNSZ=BKqNPCWUmaCSz+gJtBRhjkWtpcDbirsV+KJX=c0kpg@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSZ%3DBKqNPCWUmaCSz%2BgJtBRhjkWtpcDbirsV%2BKJX%3Dc0kpg%40mail.gmail.com
In-Reply-To: <ygflhqlvni7.fsf@corbe.net>

```
On Mon, Aug 18, 2014 at 5:14 PM, Daniel Corbe <corbe@corbe.net> wrote:
>
> Karsten Blees <karsten.blees@gmail.com> writes:
>
>> Am 18.08.2014 00:01, schrieb Erik Faye-Lund:
>>> On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>>>
>>>> I installed git on my Windows machine while it was connected to my
>>>> corporate network.  It picked up on that fact and used a mapped drive to
>>>> store its configuration file.
>>>>
>>>> As a result, I cannot currently use git when disconnected from my
>>>> network.  It throws the following error message: fatal: unable to access
>>>> 'Z:\/.config/git/config': Invalid argument
>>>>
>>>> Obviously this value is stored in the registry somewhere because I made
>>>> an attempt to uninstall and reinstall git with the same results.
>>>>
>>>> Can someone give me some guidance here?
>>>
>>> Git looks for the per-user configuration in $HOME/.gitconfig, and if
>>> $HOME is not set, it falls back to $HOMEDIR/$HOMEPATH/.gitconfig. My
>>> guess would be some of these environment variables are incorrectly set
>>> on your system.
>>
>> To be precise, git checks if %HOME% is set _and_ the directory exists before
>> falling back to %HOMEDRIVE%%HOMEPATH%.
>>
>> If %HOMEDRIVE%%HOMEPATH% isn't set or the directory doesn't exist either, it
>> falls back to %USERPROFILE%, which is always local (C:/Users/<yourname>), even
>> if disconnected from the network (at least that's how its supposed to be).
>>
>>
>
> Awesome!  Thanks for the advice.
>
> %HOMEDRIVE% and %HOMEPATH% are indeed set by my system and point to an
>  (often disconnected) network drive.  I manually forced %HOME% to
>  %USERPROFILE% and it works like a charm now.
>
> I would argue that on Windows %USERPROFILE% should be checked first (or
> at least after %HOME%).

Why? Then people won't be able to have their config files on network-shares, no?

I think a somewhat better approach would be to resolve the home
directory lazily, unless %HOME% is set. That way we can check that
%HOMEDRIVE%%HOMEPATH% actually exists as it's being accessed. Or you
could just restart your shell when you disconnect...

```

## Daniel Corbe, 2014-08-18 15:40

Subject: Re: Location of git config on Windows
Message-ID: <ygf7g25vm9v.fsf@corbe.net>
URL: https://gitlist.dev/e/ygf7g25vm9v.fsf%40corbe.net
In-Reply-To: <CABPQNSZ=BKqNPCWUmaCSz+gJtBRhjkWtpcDbirsV+KJX=c0kpg@mail.gmail.com>

```

Erik Faye-Lund <kusmabite@gmail.com> writes:

> Or you could just restart your shell when you disconnect...

Well I'm not that daft.  I tried that and if it had resolved my problem
I wouldn't have posted.

```

## Erik Faye-Lund, 2014-08-18 15:47

Subject: Re: Location of git config on Windows
Message-ID: <CABPQNSZayAr0jf9C55wtEH_AJ_hSUkwFsGV4ZxVixizthojkRA@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSZayAr0jf9C55wtEH_AJ_hSUkwFsGV4ZxVixizthojkRA%40mail.gmail.com
In-Reply-To: <ygf7g25vm9v.fsf@corbe.net>

```
On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe <corbe@corbe.net> wrote:
>
> Erik Faye-Lund <kusmabite@gmail.com> writes:
>
>> Or you could just restart your shell when you disconnect...
>
> Well I'm not that daft.  I tried that and if it had resolved my problem
> I wouldn't have posted.

Hm, but isn't that what Karsten explains in his last paragraph? What
shell are you running msys or cmd?

```

## Erik Faye-Lund, 2014-08-18 15:51

Subject: Re: Location of git config on Windows
Message-ID: <CABPQNSZGYDnSfyS7X+MdskhUrmFx5Kzoi+A5+pgoBiX5kPruyg@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSZGYDnSfyS7X%2BMdskhUrmFx5Kzoi%2BA5%2BpgoBiX5kPruyg%40mail.gmail.com
In-Reply-To: <CABPQNSZayAr0jf9C55wtEH_AJ_hSUkwFsGV4ZxVixizthojkRA@mail.gmail.com>

```
On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund <kusmabite@gmail.com> wrote:
> On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>
>> Erik Faye-Lund <kusmabite@gmail.com> writes:
>>
>>> Or you could just restart your shell when you disconnect...
>>
>> Well I'm not that daft.  I tried that and if it had resolved my problem
>> I wouldn't have posted.
>
> Hm, but isn't that what Karsten explains in his last paragraph? What
> shell are you running msys or cmd?

Our /etc/profile does this:

https://github.com/msysgit/msysgit/blob/master/etc/profile#L38

...however, our git-wrapper only does this:

https://github.com/msysgit/msysgit/blob/master/src/git-wrapper/git-wrapper.c#L71

So yeah, we don't seem to actually check if %HOMEDRIVE%%HOMEPATH%
exists. Perhaps fixing this is the right thing to do then? Since the
git-wrapper is run for *every* invokation of git, you wouldn't even
have to restart the shell in this case.

```

## Daniel Corbe, 2014-08-18 17:05

Subject: Re: Location of git config on Windows
Message-ID: <ygfsiktu3rl.fsf@corbe.net>
URL: https://gitlist.dev/e/ygfsiktu3rl.fsf%40corbe.net
In-Reply-To: <CABPQNSZGYDnSfyS7X+MdskhUrmFx5Kzoi+A5+pgoBiX5kPruyg@mail.gmail.com>

```
Erik Faye-Lund <kusmabite@gmail.com> writes:

> On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund <kusmabite@gmail.com> wrote:
>> On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>>
>>> Erik Faye-Lund <kusmabite@gmail.com> writes:
>>>
>>>> Or you could just restart your shell when you disconnect...
>>>
>>> Well I'm not that daft.  I tried that and if it had resolved my problem
>>> I wouldn't have posted.
>>
>> Hm, but isn't that what Karsten explains in his last paragraph? What
>> shell are you running msys or cmd?
>
> Our /etc/profile does this:
>
> https://github.com/msysgit/msysgit/blob/master/etc/profile#L38
>
> ...however, our git-wrapper only does this:
>
> https://github.com/msysgit/msysgit/blob/master/src/git-wrapper/git-wrapper.c#L71
>
> So yeah, we don't seem to actually check if %HOMEDRIVE%%HOMEPATH%
> exists. Perhaps fixing this is the right thing to do then? Since the
> git-wrapper is run for *every* invokation of git, you wouldn't even
> have to restart the shell in this case.

But again, restarting the shell doesn't fix the problem.  

-Daniel

```

## Erik Faye-Lund, 2014-08-18 18:17

Subject: Re: Location of git config on Windows
Message-ID: <CABPQNSbqT1CO3tXn7S3DA88BuEQpz__5D1e4gJLvYeZZy0Ztzg@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSbqT1CO3tXn7S3DA88BuEQpz__5D1e4gJLvYeZZy0Ztzg%40mail.gmail.com
In-Reply-To: <ygfsiktu3rl.fsf@corbe.net>

```
On Mon, Aug 18, 2014 at 7:05 PM, Daniel Corbe <corbe@corbe.net> wrote:
> Erik Faye-Lund <kusmabite@gmail.com> writes:
>
>> On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund <kusmabite@gmail.com> wrote:
>>> On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe <corbe@corbe.net> wrote:
>>>>
>>>> Erik Faye-Lund <kusmabite@gmail.com> writes:
>>>>
>>>>> Or you could just restart your shell when you disconnect...
>>>>
>>>> Well I'm not that daft.  I tried that and if it had resolved my problem
>>>> I wouldn't have posted.
>>>
>>> Hm, but isn't that what Karsten explains in his last paragraph? What
>>> shell are you running msys or cmd?
>>
>> Our /etc/profile does this:
>>
>> https://github.com/msysgit/msysgit/blob/master/etc/profile#L38
>>
>> ...however, our git-wrapper only does this:
>>
>> https://github.com/msysgit/msysgit/blob/master/src/git-wrapper/git-wrapper.c#L71
>>
>> So yeah, we don't seem to actually check if %HOMEDRIVE%%HOMEPATH%
>> exists. Perhaps fixing this is the right thing to do then? Since the
>> git-wrapper is run for *every* invokation of git, you wouldn't even
>> have to restart the shell in this case.
>
> But again, restarting the shell doesn't fix the problem.
>

Not for cmd, no. But for Git Bash, it should.

```
