gitgithubsshmultiple-accounts

Multiple git accounts missing username and email


I have work and personal repos and want to switch between the two on the same machine with their respective git accounts. I have set up GPG Signed commits on the work repo and I want to set up ssh commits on a personal repo and be able to switch between the two.

But I keep getting this error

Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

I have a folder structure like so:

root
  |_ .gitconfig
  |_ .ssh 
      |_config
      |_mypersonal (ssh key)
      |_mypersonal.pub (ssh key)
  |_ Desktop
        |_ repos (work)
             |_ .gitconfig.work
             |_ workRepos...
        |_ myrepos (personal)
             |_ .gitconfig.pers
             |_ personalRepos...

And these are the git files listed above:

# .gitconfig

[includeIf "gitdir:~/Desktop/myrepos/"]
path = ~/Desktop/myrepos/.gitconfig-pers

[includeIf "gitdir:~/Desktop/repos/"]
path = ~/Desktop/repos/.gitconfig-work

[core]
excludesfile = ~/.gitignore
#config

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/mypersonal
#.gitconfig.work

[user]
        email = mywork@email.com
        name = Me Work
        signingkey = *********************************
[commit]
        gpgsign = true
#.gitconfig.pers

[user]
email = mypersonal@email.com
name = Me Personal

[github]
user = “githubUserName”

[core]
sshCommand = “ssh -i ~/.ssh/mypersonal”

Solution

  • Double-check the path declared in your global config, and use:

    git config --list --show-origin --show-scope
    

    In each repository.

    You can compare your setup with the process described in this gist.


    As the OP C0deJack mentions in the comments:

    • The file name should be .gitconfig-pers
    • The double quotes should be " rather than