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

时间:2018-11-09 04:20:30

标签: 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.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中找不到在应用程序包中找到的任何方法。这是正确的方法吗?有谁知道该怎么做?

2 个答案:

答案 0 :(得分:3)

  

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

因为您的凭证助手(osxkeychain)已将ActOne与github URL相关联。

打开您的钥匙串访问权限,搜索github.com相关文件->并在其中编辑凭据。
请参阅“ Updating credentials from the OSX Keychain”。

https://help.github.com/assets/images/help/setup/keychain-access.png

如果您已经具有与该HTTPS URL相关联的凭据(所需),请切换到SSH URL:以described here的身份,您可以通过这种方式管理多个帐户。


OP MiguelMunoz添加in the comments

  

我不得不做很多事情来解决这个问题。

     
      
  • 我必须从我的钥匙串中删除GitHub条目。
  •   
  • 我必须使用git config user.emailgit config user.name设置本地GitHub用户和电子邮件。
  •   
  • 我必须从~/.gitconfig删除用户和电子邮件。
  •   
  • 我必须在我的~/.ssh/config文件中设置两个身份。
  •   
  • 我必须使用git remote --set-url将遥控器设置为使用新身份。
  •   
  • 我必须将IdentitiesOnly yes添加到~/.ssh/config文件中的每个标识中。
  •   

答案 1 :(得分:0)

我遇到了同样的问题,只是想出了办法。 在钥匙串中,我有2个github条目-只是删除了有问题的条目。 下次我尝试推送相关存储库时,它再次询问密码和电子邮件帐户。 这样就以正确的方式创建了新条目。 希望这对某人有帮助。