如何为多个Github帐户存储钥匙串凭证?

时间:2014-06-18 00:36:22

标签: macos git github keychain

我在OSX Mavericks上运行Git,直到现在还没有问题。改变的是我试图在同一台计算机上的不同回购中使用两个Github帐户。

问题是osx-keychain正在存储我第一个帐户的登录信息。这之前非常棒,但每当我尝试提交或推送我的新Github帐户时,默认使用钥匙串的用户名和密码值,并忽略本地定义的git配置(甚至全局git配置!)文件。 / p>

我可以删除我的osx-keychain,然后推送到新帐户,但这样做会为该帐户创建一个新的钥匙串,这让我回到原点:能够推送到我的辅助帐户新的钥匙串值但已锁定在我的主帐户之外。

所以我陷入了“两种情况”,我真的希望有一种“两种”解决方案。有什么帮助吗?

P.S。我尝试了this solution,但它没有用,因为osx-keychain似乎覆盖了SSH身份功能

1 个答案:

答案 0 :(得分:8)

如果您使用的是https网址,则the solution you mention不会产生任何影响:它适用于多个ssh密钥。

关于https,this question提到了一些解决方案,包括:

  • 默认情况下,gitcredentials仅考虑域名 如果您希望git考虑完整路径(例如,如果您有多个GitHub帐户),将useHttpPath变量设置为true ,如 gitcredentials 所述。<登记/> 请注意,更改此设置将再次针对每个网址请求您的凭据。
  

默认情况下,Git不认为http URL的“路径”组件值得通过外部助手进行匹配。
  这意味着为https://example.com/foo.git存储的凭据也将用于https://example.com/bar.git   如果您确实要区分这些情况,请将此选项设置为true。

另外,请确保您的https网址包含您的帐户名称:

git clone https://user1@github.com/auser/aprojectX
git clone https://user2@github.com/auser/aprojectY

这将有助于凭证助手知道应该查找哪个帐户/密码。

最后,您用于访问git repo托管服务的身份验证与以下内容无关:

git config (--global) user.name

最后一个配置仅用于设置与本地提交相关联的作者 它不是用于选择用于访问远程托管网站的帐户。