threads / discuss / 53168

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

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

## tl;dr

4 messages between Apr 6, 2020 and Apr 6, 2020.

replies: 3people: 3as markdown or json

Tomáš Procházka· Apr 6, 2020, 08:48 UTC · lore
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· Apr 6, 2020, 13:05 UTC · re: Tomáš Procházka · lore

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

On Mon, Apr 06, 2020 at 10:48:06AM +0200, Tomáš Procházka wrote:
Show 7 quoted lines
> [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...
Show 6 quoted lines
> 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· Apr 6, 2020, 18:01 UTC · re: Jeff King · lore

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

Jeff King <peff@peff.net> writes:
Show 33 quoted lines
> 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· Apr 6, 2020, 18:05 UTC · re: Junio C Hamano · lore

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

On Mon, Apr 06, 2020 at 11:01:31AM -0700, Junio C Hamano wrote:
Show 17 quoted lines
> > 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

← back to recent threads