我从我的GitHub帐户克隆了一个Git存储库到我的电脑。
我想使用我的电脑和笔记本电脑,但只有一个GitHub帐户。
当我尝试使用我的电脑推送到GitHub或从GitHub中拉取时,它需要用户名和密码,但当我使用笔记本电脑时不需要!
我不想每次与origin交互时都键入用户名和密码。我在这里缺少什么?
我从我的GitHub帐户克隆了一个Git存储库到我的电脑。
我想使用我的电脑和笔记本电脑,但只有一个GitHub帐户。
当我尝试使用我的电脑推送到GitHub或从GitHub中拉取时,它需要用户名和密码,但当我使用笔记本电脑时不需要!
我不想每次与origin交互时都键入用户名和密码。我在这里缺少什么?
当前回答
我也有同样的问题。
所以我从项目中更改了.git/config文件,
url = https://github.com/<your-user-here>/<your-repo-here>
to
url = git@github.com:<your-user-here>/<your-repo-here>
并将SSH公钥添加到正在设置的Git配置文件中。
对于SSH公钥:
cat ~/.ssh/id_rsa.pub
其他回答
正如许多用户所说,您只需将Git存储库URL从HTTPS更改为SSH即可。
如果您尚未在计算机中生成SSH密钥,那么您将不得不执行此操作。
作为补充信息,在进行此更改后,我仍然收到相同的错误:
权限被拒绝。
在我的案例中,问题是我使用的是Windows Shell来执行ngh命令;由于该命令应打开一个提示以请求SSH短语,而Windows Shell没有打开这些提示,因此身份验证失败。
所以,我只需要打开Gitshell并在那里执行ngh命令,每次它请求时都在提示符中输入SSH短语,然后“voilà”。。。它工作得很好!
您可以在Git中缓存GitHub密码:
只需遵循GitHub官方文档中的说明即可。
按照上述链接中的说明进行操作后,您应该可以在不每次输入用户名/密码的情况下,向存储库推送/从存储库中推送。
对于Windows Git用户,在运行Git-config--globalcredential.helper store后,如果仍然提示输入密码,最好使用以下命令检查配置文件的写入位置
git config --list --show-origin
在我的例子中,在手动编辑配置文件“C:\Program Files\Git\mingw64\etc\gitconfig”并添加以下文本后,它就工作了。
[credential]
helper = store
如果SSH密钥或.netrc文件不适用于您,那么另一个简单但不太安全的解决方案可能适用于您:git credential store-Helper将凭据存储在磁盘上:
git config --global credential.helper store
默认情况下,凭据将保存在文件~/.git凭据中。它将被创建并写入。
请注意,使用此助手将在磁盘上存储未加密的密码,仅受文件系统权限的保护。如果这可能不是可接受的安全权衡。
如果您在Github帐户上启用了2FA,那么您的常规密码将无法用于此目的,但您可以生成一个个人访问令牌并将其替换为使用。
访问GitHub中的设置->开发人员设置->个人访问令牌页面(https://github.com/settings/tokens/new),并生成具有所有Repo权限的新令牌:
然后页面将显示新的令牌值。保存此值,并在推送到GitHub上的存储库时使用它代替密码:
> git push origin develop
Username for 'https://github.com': <your username>
Password for 'https://<your username>@github.com': <your personal access token>