当推送到远程时,Git不会使用第二组凭据

时间:2014-04-25 03:17:41

标签: git github ssh atlassian-sourcetree

通过创建第二个ssh密钥并将config文件添加到~/.ssh目录,我已设置第二个git标识用于我的公司帐户,如{{3}所述}:

我还设置了本地存储库的新用户名和电子邮件:

$(path to repo directory) git config user.name "<Company account user name>"
$(path to repo directory) git config user.email "<Company account user email>"

正如博客文章中的一条评论中所建议的那样。

我已经在Github(公司帐户)上创建了一个本地存储库。我已经将GitHub上的(公共)回购添加为本地回购的远程(原产地)。

我可以从遥控器拉(使用命令行和SourceTree),但是当我尝试推送时,我收到此错误:

ERROR: Permission to <company user name>/Test.git denied to <personal user name>.
fatal: Could not read from remote repository.

也就是说,git正在尝试使用我现有的个人帐户,而不是新的工作帐户。

如何使用正确的帐户凭据进行git推送?

1 个答案:

答案 0 :(得分:1)

我认为这可能是整个osx keychain / keychain helper thingy。

以下是我解决它的方法:

1)删除本地仓库(&#34;从头开始&#34;)。

2)再次从原点克隆(GitHub)。

3)检查repo是否配置为使用新帐户的电子邮件地址(确实如此)。

4)再次检查.ssh / config文件中的主机,确保每个主机都设置了正确的密钥(它们是)。

5)绝望之下,将新的rsa密钥分配给所述.ssh/config文件中的两个帐户/主机。仍然无法推送,仍然可以通过旧帐户的电子邮件地址解决(某些地方正在缓存某些内容......),因此无法进行身份验证。

6)启动KeyChain Access.app,搜索&#34; git&#34;,&#34; GitHub&#34;并删除所有&#34;互联网密码&#34;条目。 &lt; - 这就是罢工

删除所有内容后,我不得不在提示时重新输入两个帐户的凭据(SourceTree),但现在我有两个(工作)存储库,在同一台机器上并排使用两个不同的GitHub帐户。

希望这有助于某人。