每当我尝试推入我的存储库时,git都会要求用户名和密码。
每次重新输入密码没有问题,但问题是输入用户名。我使用https克隆存储库。
那么,我如何配置git,使它在每次git推送时都不需要用户名。
我是linux新手,但windows git push中的IIRC只要求输入密码。
每当我尝试推入我的存储库时,git都会要求用户名和密码。
每次重新输入密码没有问题,但问题是输入用户名。我使用https克隆存储库。
那么,我如何配置git,使它在每次git推送时都不需要用户名。
我是linux新手,但windows git push中的IIRC只要求输入密码。
当前回答
编辑(由@dk14根据主持人和评论的建议)
警告:如果您从答案中使用credential.helper存储,您的密码将完全未加密(“原样”)存储在~/.git凭据中。请参阅下面的评论部分或“链接”部分的答案,特别是如果您的雇主对安全问题零容忍的话。
即使被接受,它也不能回答实际OP关于只省略用户名(而不是密码)的问题。对于有这个确切问题的读者,@grawity的答案可能会派上用场。
原始答案(作者@Alexander Zhu):
可以使用以下命令存储凭据
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
此外,我建议您阅读$git帮助凭据
其他回答
使用以下命令可以给您15分钟的超时时间。
$ git config --global credential.helper cache
您也可以通过下面的命令修改时间。这是一个1小时的示例。
$ git config --global credential.helper 'cache --timeout=3600'
如果要在本地缓存,请使用该命令一小时以超时。
$ git config credential.helper 'cache --timeout=3600'
在GitHub上添加新的SSH密钥,如本文所述。
如果Git仍然要求您输入用户名和密码,请尝试更改https://github.com/到git@github.com:在远程URL中:
$ git config remote.origin.url
https://github.com/dir/repo.git
$ git config remote.origin.url "git@github.com:dir/repo.git"
截至8月13日,2021不再接受基于密码的登录。现在需要使用基于令牌/SSH的身份验证。
如果你不想每次推送时都被问到,请安装GitHubCLI,然后缓存凭据:
git config --global credential.helper store
gh auth login
并按照提示进行操作。但请确保使用GitHub凭据检查Authenticate Git?带有Y。
如果你使用SSH版本,你将不会有任何密码问题。只有一次你生成SSH密钥,告诉git,这台电脑将使用这个github帐户,并且永远不会再询问我(这台电脑的)任何访问权限。
如何为Github生成SSH
最简单的方法是创建包含以下内容的~/.netrc文件:
machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD
(如下所示:https://gist.github.com/ahoward/2885020)
您甚至可以关闭此文件的权限,以便没有人可以通过键入以下内容读取您的密码:
chmod 600 ~/.netrc