我有两个github帐户,分别称为ActOne和ActTwo,以及电子邮件,分别称为em@one.net和em@two.net。我需要在两个帐户之间关闭,但无法使第二个帐户正常工作。
我当前的项目使用ActTwo帐户。当我说git push
时,出现以下错误消息:
remote: Permission to ActTwo/Tools.git denied to ActOne.
fatal: unable to access 'https://github.com/ActTwo/Tools.git/': The requested URL returned error: 403
我不知道为什么要使用ActOne而不是ActTwo。我当前项目的.git / config文件如下所示:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://github.com/ActTwo/Tools.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
email = em@two.net
name = ActTwo
[credential]
helper = osxkeychain
我的〜/ gitconfig文件如下:
[color]
ui = auto
[filter "lfs"]
smudge = git-lfs smudge %f
required = true
clean = git-lfs clean %f
[credential]
helper = osxkeychain
它曾经有这个,但是我为解决问题而徒劳地删除了它:
[user]
email = em@one.net
name = ActOne
附录:
问题似乎是因为我的凭证助手(osxkeychain)已将ActOne与github URL相关联。我在另一个帐户的“钥匙串访问”中添加了第二个条目,但是它不起作用。而且它不起作用的原因是“访问控制”选项卡没有git-credential-osxkeychain的条目。而且我不能添加一个,因为实际的应用程序在我的xCode应用程序包中,而且在KeychainAccess中找不到在应用程序包中找到的任何方法。这是正确的方法吗?有谁知道该怎么做?
答案 0 :(得分:3)
我不知道为什么要使用ActOne而不是ActTwo。
因为您的凭证助手(osxkeychain
)已将ActOne与github URL相关联。
打开您的钥匙串访问权限,搜索github.com相关文件->并在其中编辑凭据。
请参阅“ Updating credentials from the OSX Keychain”。
如果您已经具有与该HTTPS URL相关联的凭据(所需),请切换到SSH URL:以described here的身份,您可以通过这种方式管理多个帐户。
OP MiguelMunoz添加in the comments:
我不得不做很多事情来解决这个问题。
- 我必须从我的钥匙串中删除GitHub条目。
- 我必须使用
git config user.email
和git config user.name
设置本地GitHub用户和电子邮件。- 我必须从
~/.gitconfig
删除用户和电子邮件。- 我必须在我的
~/.ssh/config
文件中设置两个身份。- 我必须使用
git remote --set-url
将遥控器设置为使用新身份。- 我必须将
IdentitiesOnly yes
添加到~/.ssh/config
文件中的每个标识中。
答案 1 :(得分:0)
我遇到了同样的问题,只是想出了办法。 在钥匙串中,我有2个github条目-只是删除了有问题的条目。 下次我尝试推送相关存储库时,它再次询问密码和电子邮件帐户。 这样就以正确的方式创建了新条目。 希望这对某人有帮助。