我使用Git已经有一段时间了,但不断的密码请求开始让我感到很烦。

我使用的是Mac OS X和GitHub,我按照GitHub的设置Git页面的指示设置Git和SSH密钥。

我还将github SSH密钥添加到了我的Mac OS X密钥链中,正如github的SSH密钥密码页面中提到的那样。我的公钥已在Git中注册。

然而,每次我尝试Git拉时,我都必须输入用户名和密码。除了SSH密钥之外,我是否需要为此设置其他东西?


当前回答

我有这个问题。回购要求我每次都输入凭证。我所有的其他经纪人都没有要求我出示证件。他们甚至被设置为在相同的帐户凭据下使用HTTPS跟踪GitLab,所以奇怪的是,除了一个,他们都工作得很好。

比较.git/config文件,我发现导致问题的URL中有两个关键差异:

确实要求提供凭据:

https://gitlab.com/myaccount/myproject

不要求提供凭据:

https://myaccount@gitlab.com/myaccount/myproject.git 

因此,添加“myaccount@”和“.git”解决了我的问题。

其他回答

我想你解决了你的问题,但我看不到能帮我的解决方案,所以就在这里。

键入终端:

echo "" > ~/.ssh/known_hosts

这将清空known_hosts文件,您必须添加您使用过并连接到的每个主机,但这解决了问题。

orkoden关于在终端中使用带有Git的密钥链的回答不完整,并引发了错误。这是您必须执行的操作,以保存在钥匙链中的终端中输入的用户名和密码:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

然后输入

git config --global credential.helper osxkeychain

如果你已经在curl之前完成了Git配置的部分,那没问题;它会奏效的。

运行macOS Cataline 10.15时,密钥链缓存方法对我不起作用

以下是对我有用的:

git remote rm origin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

这也应该在GitLab上运行

确保用户名包含电子邮件地址,以删除@email部分,否则您将收到一个错误,说明URL使用了错误/非法格式或缺少URL。

希望这有帮助!

如果每次尝试与GitHub交互时,Git都会提示您输入用户名和密码,那么您可能使用的是存储库的HTTPS克隆URL。

使用HTTPS远程URL有一些优点:它比SSH更容易设置,并且通常通过严格的防火墙和代理进行工作。然而,它也会在您每次拉动或推送存储库时提示您输入GitHub凭据。

您可以配置Git为您存储密码。对于Windows:

git config --global credential.helper wincred

我同意“codehugger”,并使用“orkoden”的指令,它对我有效-在NetBeans 7.3上-当您右键单击文件并选择上下文菜单-push-打开“push to remote”窗口时-这里有两个选项:

来源:https://github.com/myaccount/myproject.git/https://github.com/myaccount/myproject.git/

正如您所看到的,区别在于URL中的原始参数-您不想选择此选项(1),您想检查选项(2),这对我来说很好。