15

我们最近将我们的 github 从一个帐户所有者转移到另一个帐户所有者,现在突然间当我git pull在远程 repo 上执行一个或任何 git 命令时,它会要求我提供 github 用户名和密码。

我的 git-config 说:

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

知道如何阻止它向我询问凭据并记住所有内容,新所有者是否必须设置我的 ssh 密钥或类似的东西?

4

4 回答 4

24

按照这篇文章为我整理了一下: https ://help.github.com/articles/why-is-git-always-asking-for-my-password

git remote set-url origin git@github.com:user/repo.git
于 2013-02-28T12:00:32.420 回答
15

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

如果您通过 https 从 GitHub 存储库推送和拉取,那么您需要每次都指定您的凭据,或者连接到密码管理器以记住您的凭据。如何执行此操作取决于您的平台。

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

[编辑] 在重新阅读问题后,我注意到您提到它以前是一个 GitHub 存储库,刚刚从一个所有者转移到另一个所有者。如果是这种情况,并且您可以通过指定您的凭据来推送和拉取,那么在我看来这是以下两种情况之一:

  • 之前的远程使用ssh,GitHub有你的SSH密钥;但是当所有者更改并且您更新了遥控器时,您将其更新为通过 https。
  • 以前的遥控器使用 https,但您正确设置了密码管理器来处理您的凭据,但它不再有效。
于 2012-04-12T15:09:22.163 回答
11

在执行“remote -v”之后......问题是我的遥控器使用的是“https”遥控器而不是“git”遥控器。将遥控器更改为使用 git 而不是 https 解决了所有问题。

于 2012-07-06T19:20:43.707 回答
0

如果您只执行一次git pull并且 Git 客户端仍然询问您的凭据而没有为您执行git pull,那么问题应该是因为您的凭据不正确或尚未设置。

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

于 2012-04-12T15:34:07.680 回答