Я настроил две учетные записи на моем компьютере с двумя разными ключами S SH.
Я не настроил глобального пользователя для git, потому что я хочу, чтобы git использовал разных авторов (для pu sh, commit, et c) в соответствии с каталогом, в котором я нахожусь.
Это мои ~/.gitconfig
:
[includeIf "gitdir:~/Project1/*"]
path = ~/Project1/.gitconfig
[includeIf "gitdir:~/Project2/*"]
path = ~/Project2/.gitconfig
это мои ~/Project1/.gitconfig
и ~/Project2/.gitconfig
:
[user]
name = user1
email = mail1@mail1.com
[remote "origin"]
url = git@github-1:author/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[user]
name = user2
email = mail2@mail2.com
[remote "origin"]
url = git@github-2:author/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
и это мое ~/.ssh/config
:
Host github-1
HostName github.com
User git
IdentityFile ~.ssh/ssh-keys-user1
Host github-2
HostName github.com
User git
IdentityFile ~.ssh/ssh-keys-user2
Конечно, каждый репо в ~/Project1
клонируется через git@github-1:author/repo.git
и каждый репо в ~/Project2
клонируется через git@github-2:author/repo.git
.
Проблема в том, что когда я пытаюсь что-то сделать sh во время работы в ~/Project2
, я получаю следующую ошибку:
ERROR: Permission to author/repo.git denied to user1.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
, что не должно происходить, потому что, как я и думал, все в ~/Project2
должно быть связано с user2
, а не user1
. Все остальное все еще работает отлично: я могу вытащить, получить и т.д. c, но я не могу pu sh.
Как мне решить эту проблему?