每当我尝试推入我的存储库时,git都会要求用户名和密码。
每次重新输入密码没有问题,但问题是输入用户名。我使用https克隆存储库。
那么,我如何配置git,使它在每次git推送时都不需要用户名。
我是linux新手,但windows git push中的IIRC只要求输入密码。
每当我尝试推入我的存储库时,git都会要求用户名和密码。
每次重新输入密码没有问题,但问题是输入用户名。我使用https克隆存储库。
那么,我如何配置git,使它在每次git推送时都不需要用户名。
我是linux新手,但windows git push中的IIRC只要求输入密码。
当前回答
我找到的最简单的方法是使用以下命令:
git config --global credential.https://github.com.username <your_username>
这会逐个站点工作,并修改全局git配置。
要查看更改,请使用:
git config --global --edit
其他回答
ssh+密钥身份验证比https://credential.helper更可靠
您可以配置为对所有存储库使用SSH而不是HTTPS,如下所示:
git config --global url.ssh://git@github.com/.insteadOf https://github.com/
网址<此处记录了base>.installOf。
我今天面临这个问题。如果您在2020年11月面临此问题,则需要更新git版本。我收到一封电子邮件,告诉我这件事。下面是github团队的电子邮件内容。
我们检测到您最近试图向GitHub进行身份验证使用旧版本的Git for Windows。GitHub改变了用户在使用Git for Windows时进行身份验证,现在需要使用web浏览器验证GitHub。能够登录通过web浏览器,用户需要更新到最新版本的Git窗户。您可以在以下位置下载最新版本:https://gitforwindows.org/如果您无法将Git for Windows更新到最新版本,请参阅有关详细信息和建议的解决方法,请单击以下链接:https://aka.ms/gcmcore-githubauthchanges如果您对这些更改有任何疑问或需要帮助,请联系GitHub支持,我们很乐意进一步协助。https://support.github.com/contact谢谢,GitHub团队
您可以通过在Git配置文件中放置以下内容来设置给定站点上所有存储库的用户名。你会想改变的”https://example.com“和”我“添加到实际URL和您的实际用户名。
[credential "https://example.com"]
username = me
(这直接来自“git help credentials”)
请注意,从2021 8月13日开始,github在对Git操作进行身份验证时不再接受帐户密码,并且将要求对github.com上所有经过身份验证的Git操作使用基于令牌的身份验证。您也可以继续使用SSH密钥。
因此,对于必须使用的给定身份验证上下文的用户名静态配置(使用github时):
https://username:<personal-access-tokens>@repository-url.com
请注意,我们使用的是<个人访问令牌>,而不是<密码>
有关如何创建个人访问令牌的详细信息,请查看文档。
github文档称:
HTTPS上的GitHub。。。每次使用Git进行身份验证时GitHub,将提示您输入凭据以进行身份验证使用GitHub,除非您使用凭据助手缓存它们。...使用SSH。。。每次使用Git向GitHub进行身份验证时,除非您已经存储密钥。
github建议通过HTTPS进行连接。可能是因为他们希望您使用Git凭据管理器核心。但是Git凭据管理器核心在Windows和macOS上运行。Linux支持(截至发布时)在早期预览中。
因此,我只提供Git和SSH解决方案。
Git的文档讨论了如何避免反复使用gitcredentials输入相同的凭据。
解决方案1
使用凭据助手缓存密码(在内存中短时间)。
git config --global credential.helper cache
解决方案2
使用凭据助手存储密码(无限期地存储在磁盘上)。
git config --global credential.helper 'store --file ~/.my-credentials'
您可以在文档中找到凭据将保存的位置(如果未使用--file显式设置)。
注:为了解决gitcredentials完全未加密(“原样”)存储凭据的问题,您可以在使用之前始终对文件进行加密和解密。
解决方案3
这几乎是从生成一个新的SSH密钥并将其添加到SSH代理的直接复制粘贴。我认为点击链接会比在这里阅读更好。无论如何,我会在这里复制粘贴命令。
使用ssh keygen-t ed25519-C创建ssh密钥“your_email@example.com“.您也可以使用ssh keygen-t RSA-b 4096-C使用RSA代替Ed25519”your_email@example.com"将SSH密钥添加到GitHub上的帐户。如果未启动,请在后台使用$eval“$(ssh代理-s)”启动ssh代理使用$SSH-Add~/.SSH/id_ed25519将SSH私钥添加到SSH代理。如果您使用不同的名称创建了密钥,或者正在添加具有不同名称的现有密钥,请将命令中的id_ed25519替换为私钥文件的名称。
在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"