我从我的GitHub帐户克隆了一个Git存储库到我的电脑。

我想使用我的电脑和笔记本电脑,但只有一个GitHub帐户。

当我尝试使用我的电脑推送到GitHub或从GitHub中拉取时,它需要用户名和密码,但当我使用笔记本电脑时不需要!

我不想每次与origin交互时都键入用户名和密码。我在这里缺少什么?


当前回答

您需要执行两个步骤-

git远程删除原点git远程添加原点git@github.com:掘金AI/掘金.git

注意Git URL是SSH URL,而不是HTTPS URL。。。您可以从这里选择:

其他回答

正如许多用户所说,您只需将Git存储库URL从HTTPS更改为SSH即可。

如果您尚未在计算机中生成SSH密钥,那么您将不得不执行此操作。

作为补充信息,在进行此更改后,我仍然收到相同的错误:

权限被拒绝。

在我的案例中,问题是我使用的是Windows Shell来执行ngh命令;由于该命令应打开一个提示以请求SSH短语,而Windows Shell没有打开这些提示,因此身份验证失败。

所以,我只需要打开Gitshell并在那里执行ngh命令,每次它请求时都在提示符中输入SSH短语,然后“voilà”。。。它工作得很好!

我刚刚遇到了同样的问题,我找到的最简单的解决方案是使用SSH URL而不是HTTPS URL:

ssh://git@github.com/username/repo.git

而不是这样:

https://github.com/username/repo.git

现在,您可以只使用SSH密钥而不是用户名和密码进行验证。

还有一个选项:

而不是写作

git push origin HEAD

你可以写:

git push https://user:pass@yourrepo.com/path HEAD

显然,对于大多数shell,这将导致密码被缓存在历史中,所以请记住这一点。

来源:设置Git

以下命令将在内存中保存密码一段时间(对于Git 1.7.10或更高版本)。

$ git config --global credential.helper cache
# Set git to use the credential memory cache

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after one hour (setting is in seconds)

使用Git存储库永久验证

运行以下命令以启用凭据缓存:

$ git config credential.helper store
$ git push https://github.com/owner/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

您还应该指定缓存过期,

git config credential.helper 'cache --timeout 7200'

启用凭据缓存后,将缓存7200秒(2小时)。43200秒=12小时(每天登录一次)对某些人来说可能也是一个合理的选择。


正如SebastianH所评论的,也可以使用类似的命令来配置,而不是按存储库,而是全局配置:

git config --global credential.helper credential.helper store
git config --global credential.helper 'cache --timeout 7200'