为什么Git使用了错误的帐户(使用osxkeychain)?

为什么Git使用了错误的帐户(使用osxkeychain)?,git,macos,credentials,Git,Macos,Credentials,我有两个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.gi

我有两个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
[color]
        ui = auto
[filter "lfs"]
        smudge = git-lfs smudge %f
        required = true
        clean = git-lfs clean %f
[credential]
        helper = osxkeychain
我的~/gitconfig文件如下所示:

[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
[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关联。我为另一个帐户的Keychain Access添加了第二个条目,但它不起作用。它不起作用的原因是访问控制选项卡没有git credential osxkeychain的条目。我不能添加一个,因为实际的应用程序在我的xCode应用程序包中,我在KeychainAccess中找不到任何方法可以进入应用程序包。这是正确的方法吗?有人知道怎么做吗

我不知道为什么它要用ActOne而不是ActTwo

因为您的凭证助手osxkeychain已将ActOne关联到github URL

打开密钥链访问,搜索github.com相关文件->并在那里编辑凭据。 看

如果您已经有了需要与HTTPS URL关联的凭据,请切换到SSH URL:as,您可以通过这种方式管理多个帐户

报告补充说:

我必须做很多事情来解决这个问题

我不得不从我的钥匙链中删除GitHub条目。 我必须使用git config user.email和git config user.name设置本地GitHub用户和电子邮件。 我不得不从~/.gitconfig中删除用户和电子邮件。 我必须在~/.ssh/config文件中设置两个标识。 我必须通过使用git remote-set url设置远程设备以使用新标识。 我必须在~/.ssh/config文件中的每个标识中添加identiesonly yes。 我不知道为什么它要用ActOne而不是ActTwo

因为您的凭证助手osxkeychain已将ActOne关联到github URL

打开密钥链访问,搜索github.com相关文件->并在那里编辑凭据。 看

如果您已经有了需要与HTTPS URL关联的凭据,请切换到SSH URL:as,您可以通过这种方式管理多个帐户

报告补充说:

我必须做很多事情来解决这个问题

我不得不从我的钥匙链中删除GitHub条目。 我必须使用git config user.email和git config user.name设置本地GitHub用户和电子邮件。 我不得不从~/.gitconfig中删除用户和电子邮件。 我必须在~/.ssh/config文件中设置两个标识。 我必须通过使用git remote-set url设置远程设备以使用新标识。 我必须在~/.ssh/config文件中的每个标识中添加identiesonly yes。
我也有同样的问题,我刚刚解决了。 在密钥链中,我有2个github条目,只是删除了有问题的条目。 下次我尝试推送相关存储库时,它再次要求输入密码和电子邮件帐户。 以正确的方式创建了新条目。
希望这对别人有帮助。

我也有同样的问题,刚刚解决了。 在密钥链中,我有2个github条目,只是删除了有问题的条目。 下次我尝试推送相关存储库时,它再次要求输入密码和电子邮件帐户。 以正确的方式创建了新条目。
希望这对某人有所帮助。

是的,我的ActOne钥匙链中有一个github.com条目。但我不能把它改成ActTwo,因为我需要同时使用这两个帐户。我已经为ActTwo添加了一个,但我不知道如何将git凭证osxkeychain添加到新的。我已经更新了我的原始帖子。@MiguelMunoz凭证助手只能为每个用户关联一个帐户。您可以使用SSH URL关联多个帐户:。我已经编辑了我的答案。谢谢。为了记录在案,我不得不做了很多来修复这个问题。我不得不从我的钥匙链中删除github条目。我必须使用git config user.email和git config user.name设置本地github用户和电子邮件。我不得不从~/.gitconfig中删除用户和电子邮件。我必须在~/.ssh/config文件中设置两个标识。我必须通过使用git remote-set url设置远程设备以使用新标识。我必须在~/.ssh/config文件中的每个标识中添加identityOnly yes。@MiguelMunoz感谢您的反馈:我在答案中包含了您的评论,以获得更高的可视性。是的,我在ActOne的密钥链中有一个github.com条目。但我不能把它改成ActTwo,因为我需要同时使用这两个帐户。我已经为ActTwo添加了一个,但我不知道如何将git凭证osxkeychain添加到新的。我已经更新了我原来的帖子。@MiguelMunoz凭证助手只会
每个用户关联一个帐户。您可以使用SSH URL关联多个帐户:。我已经编辑了我的答案。谢谢。为了记录在案,我不得不做了很多来修复这个问题。我不得不从我的钥匙链中删除github条目。我必须使用git config user.email和git config user.name设置本地github用户和电子邮件。我不得不从~/.gitconfig中删除用户和电子邮件。我必须在~/.ssh/config文件中设置两个标识。我必须通过使用git remote-set url设置远程设备以使用新标识。我不得不在~/.ssh/config文件中的每个标识中添加identityOnly yes。@MiguelMunoz感谢您的反馈:我已将您的评论包含在答案中,以提高可视性。