为什么github不断要求我提供回购凭证?

问题描述:

我们最近将我们的github从一个账户所有者转移到另一个账户,现在突然间,当我在远程仓库执行git pull或任何git命令时,它会要求我提供github用户名和密码。为什么github不断要求我提供回购凭证?

我的混帐配置说:

[github] 
    user = kamilski81 
    token = ********* 

任何想法,我怎么能阻止它问我要证件,记住一切,并在新的所有者必须设置我的SSH密钥或者诸如此类的东西吗?

做了“远程-v”之后....问题是我的远程使用的是“https”远程而不是“git”远程。更改远程使用git而不是https解决了所有问题。

gitconfig用户名和gitconfig中的令牌仅用于与GitHub API(例如hub gem和github工具)的交互。

如果您通过https推送和从GitHub存储库中提取,那么您需要每次指定您的凭证,或挂钩到密码管理器以记住您的凭证。如何做到这一点取决于你的平台。

最简单的做法是转到您的github帐户并将您的SSH公钥提交到您的帐户,然后切换您的github远程以通过ssh而不是https进行推/拉。

重新阅读这个问题之后,我注意到您提到它之前是一个GitHub仓库,刚刚从一个所有者移到另一个仓库。如果是这样的话,你可以通过指定您的凭据,推拉,它的声音对我来说两种情况之一:

  • 以前的远程使用SSH和GitHub的有你的SSH密钥;但是当所有者发生变化并且您更新了远程设备时,您将其更新为通过https。
  • 以前的远程使用https,但你有一个密码管理器设置正确,以处理您的凭据,它不再有效。
+0

感谢亚历克斯,以前的工作是HTTPS远程,和新的远程也HTTPS。我在Mac上运行,应该查看哪个密码管理器? – Kamilski81 2012-04-13 16:32:51

如果你只执行一次混帐拉和Git客户端仍然要求你的凭证,而不做混帐拉对你来说,应该是问题,因为你的证书是不正确或不安装呢。

但是,如果您获得对话框要求为每个操作提供凭证一,则意味着您的凭证不会被记住。要做到这一点,您可以使用Pageant来存储您的SSH私钥,因此,每次您执行某项操作时,它都会从Pageant中检索您的凭据,而不是向您询问。

本文下面整理出来对我来说: https://help.github.com/articles/why-is-git-always-asking-for-my-password

git remote set-url origin [email protected]:user/repo.git 
+2

基本上这是最短的回答:) – valk 2013-04-11 09:07:54