# Fwd: Q: use '-C' flag with 'git config --global'

4 messages from 2020-04-06 to 2020-04-06. Participants: Tomáš Procházka, Jeff King, Junio C Hamano.
Thread: https://gitlist.dev/t/53168

## Tomáš Procházka, 2020-04-06 08:48

Subject: Fwd: Q: use '-C' flag with 'git config --global'
Message-ID: <CA+Sgv42bOAaRBX99EpgpnSkGXFCWFpED7hwdwkWmPSOKuL1VBg@mail.gmail.com>
URL: https://gitlist.dev/e/CA%2BSgv42bOAaRBX99EpgpnSkGXFCWFpED7hwdwkWmPSOKuL1VBg%40mail.gmail.com
In-Reply-To: <CA+Sgv42V+xfoJVoFpPkWREXT0yuKZDeMDEGa3y8NDVU-4D1iYA@mail.gmail.com>

```
Hi,

I'm running into issue that if I run `git -C <pwd/to/showmax/project>
config --global user.email` I don't get expected email.
Expected: tomas.prochazka@showmax.com
Got: tomas.prochazka5d@gmail.com

My config contains a little catch:

~/.gitconfig
ˋˋˋ
[user]
       name = Tomáš Procházka
       email = tomas.prochazka5d@gmail.com

[includeIf "gitdir:~/Workspace/Showmax/"]
   path = ~/Workspace/Showmax/.gitconfig
ˋˋˋ
~/Workspace/Showmax/.gitconfig
ˋˋˋ
[user]
    name = Tomáš Procházka
    email = tomas.prochazka@showmax.com
ˋˋˋ

I get correct email setting if I run command without `--global` flag.
But What I understand from the [`git-config`
docs](https://git-scm.com/docs/git-config#_description) if no flag is
passed the values are read from system, global and local.

If I run commands one by one, No returns the ~correct~ expected email:

~ $ git -C <pwd/to/showmax/project> config --system user.email
~ $ git -C <pwd/to/showmax/project> config --global user.email
tomas.prochazka5d@gmail.com
~ $ git -C <pwd/to/showmax/project> config --local user.email

Am I missing something?
Thanks for the answer.

Regards
Tomáš Procházka

```

## Jeff King, 2020-04-06 13:05

Subject: Re: Fwd: Q: use '-C' flag with 'git config --global'
Message-ID: <20200406130524.GA1276@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20200406130524.GA1276%40coredump.intra.peff.net
In-Reply-To: <CA+Sgv42bOAaRBX99EpgpnSkGXFCWFpED7hwdwkWmPSOKuL1VBg@mail.gmail.com>

```
On Mon, Apr 06, 2020 at 10:48:06AM +0200, Tomáš Procházka wrote:

> [includeIf "gitdir:~/Workspace/Showmax/"]
>    path = ~/Workspace/Showmax/.gitconfig
> [...]
> I get correct email setting if I run command without `--global` flag.
> But What I understand from the [`git-config`
> docs](https://git-scm.com/docs/git-config#_description) if no flag is
> passed the values are read from system, global and local.

Right, I'd expect that to work, but...

> If I run commands one by one, No returns the ~correct~ expected email:
> 
> ~ $ git -C <pwd/to/showmax/project> config --system user.email
> ~ $ git -C <pwd/to/showmax/project> config --global user.email
> tomas.prochazka5d@gmail.com
> ~ $ git -C <pwd/to/showmax/project> config --local user.email

There's another difference when asking to read from a specific file:
includes are not turned on by default. Try

  git -C ... config --global --includes user.email

This is covered briefly in git-config(1):

  --[no-]includes
    Respect include.* directives in config files when looking up values.
    Defaults to off when a specific file is given (e.g., using --file,
    --global, etc) and on when searching all config files.

This can be confusing, but was necessary to keep compatibility with
scripted manipulations of those files when includes were introduced.

-Peff

```

## Junio C Hamano, 2020-04-06 18:01

Subject: Re: Fwd: Q: use '-C' flag with 'git config --global'
Message-ID: <xmqq4ktwwl1g.fsf@gitster.c.googlers.com>
URL: https://gitlist.dev/e/xmqq4ktwwl1g.fsf%40gitster.c.googlers.com
In-Reply-To: <20200406130524.GA1276@coredump.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> On Mon, Apr 06, 2020 at 10:48:06AM +0200, Tomáš Procházka wrote:
>
>> [includeIf "gitdir:~/Workspace/Showmax/"]
>>    path = ~/Workspace/Showmax/.gitconfig
>> [...]
>> I get correct email setting if I run command without `--global` flag.
>> But What I understand from the [`git-config`
>> docs](https://git-scm.com/docs/git-config#_description) if no flag is
>> passed the values are read from system, global and local.
>
> Right, I'd expect that to work, but...
>
>> If I run commands one by one, No returns the ~correct~ expected email:
>> 
>> ~ $ git -C <pwd/to/showmax/project> config --system user.email
>> ~ $ git -C <pwd/to/showmax/project> config --global user.email
>> tomas.prochazka5d@gmail.com
>> ~ $ git -C <pwd/to/showmax/project> config --local user.email
>
> There's another difference when asking to read from a specific file:
> includes are not turned on by default. Try
>
>   git -C ... config --global --includes user.email
>
> This is covered briefly in git-config(1):
>
>   --[no-]includes
>     Respect include.* directives in config files when looking up values.
>     Defaults to off when a specific file is given (e.g., using --file,
>     --global, etc) and on when searching all config files.
>
> This can be confusing, but was necessary to keep compatibility with
> scripted manipulations of those files when includes were introduced.

So, in short, the mention of -C in the report was red herring and it
was all about --(system|global|local)?

```

## Jeff King, 2020-04-06 18:05

Subject: Re: Fwd: Q: use '-C' flag with 'git config --global'
Message-ID: <20200406180508.GA23427@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20200406180508.GA23427%40coredump.intra.peff.net
In-Reply-To: <xmqq4ktwwl1g.fsf@gitster.c.googlers.com>

```
On Mon, Apr 06, 2020 at 11:01:31AM -0700, Junio C Hamano wrote:

> > There's another difference when asking to read from a specific file:
> > includes are not turned on by default. Try
> >
> >   git -C ... config --global --includes user.email
> >
> > This is covered briefly in git-config(1):
> >
> >   --[no-]includes
> >     Respect include.* directives in config files when looking up values.
> >     Defaults to off when a specific file is given (e.g., using --file,
> >     --global, etc) and on when searching all config files.
> >
> > This can be confusing, but was necessary to keep compatibility with
> > scripted manipulations of those files when includes were introduced.
> 
> So, in short, the mention of -C in the report was red herring and it
> was all about --(system|global|local)?

Yes. It's relevant insofar as being in the repo to trigger the
conditional include, but "cd" would also have sufficed for that. :)

-Peff

```
