'Why is my gitconfig local not overriding my gitconfig global as expected?

I have been struggling for several hours across multiple days on this. I am trying to setup my Ubuntu 20.04.4 LTS machine.

I realize there are other similar posts/questions, but none have been able to help resolve my issue.

I have tried following the following walk-throughs:

https://www.freecodecamp.org/news/manage-multiple-github-accounts-the-ssh-way-2dadc30ccaca/

https://www.freecodecamp.org/news/how-to-handle-multiple-git-configurations-in-one-machine/

https://blog.gitguardian.com/8-easy-steps-to-set-up-multiple-git-accounts/

https://medium.com/big-data-processing/multiple-git-accounts-on-same-computer-27199e7ba1f2

I checked these other questions:

Why .gitconfig [includeIf] does not work?

Multiple GitHub Accounts & SSH Config

How to configure multiple github accounts on your computer?

I fear I may be having issues with some syntax somewhere.

To start, I have two ssh keys generated and already added to their respective Github accounts. My ./ssh/config is as follows:

#first account
Host github.com-firstUserName
    HostName github.com
    User git
    IdentityFile ~/.ssh/firstKey

#second account
Host github.com-secondUserName
    HostName github.com
    User git
    IdentityFile ~/.ssh/secondKey

My directories are laid out as follows:

/home/pcUserName/
    |_.gitconfig
    |_personal/
        |_.gitconfig-pers
        |_personal-repo1/
        |_personal-repo2/
    |_professional/
        |_.gitconfig-dev
        |_professional-repo1/
        |_professional-repo2/

My global gitconfig contains the following:

[includeIf "gitdir:~/repos/personal/"]
path = ~/.gitconfig.pers

[includeIf "gitdir:~/repos/professional/"]
path = ~/.gitconfig.dev

And I have the following local gitconfigs:

# ~/personal/.gitconfig.pers
[user]
email = "[email protected]"
name = "firstUserName"
[github]
user = "firstUserName"
[core]
sshCommand = "ssh -i ~/.ssh/firstKey"

and

# ~/professional/.gitconfig.dev
[user]
email = "[email protected]"
name = "secondUserName"
[github]
user = "secondUserName"
[core]
sshCommand = "ssh -i ~/.ssh/secondKey"

I get a successful test as follows:

ssh -T [email protected]
Hi firstUserName! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T [email protected]
Hi secondUserName! You've successfully authenticated, but GitHub does not provide shell access.

But then I try

cd repos/professional/
mkdir test-repo
cd test-repo
git init
git config -l
    filter.lfs.required=true
    filter.lfs.clean=git-lfs clean -- %f
    filter.lfs.smudge=git-lfs smudge -- %f
    filter.lfs.process=git-lfs filter-process
    init.defaultbranch=main
    color.ui=auto
    core.editor=code --wait
    includeif.gitdir:~/repos/personal/.path=~/.gitconfig.pers
    includeif.gitdir:~/repos/professional/.path=~/.gitconfig.dev
    core.excludesfile=~/.gitignore
    core.repositoryformatversion=0
    core.filemode=true
    core.bare=false
    core.logallrefupdates=true

I would expect to see user.name and user.email being set here, right? I have tried looking over man git and https://git-scm.com/docs/git-config but at this point, I am at a loss. Any help would be greatly appreciated.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source