我使用的是Windows 10系统,正在尝试将凭据添加到Git Bash中的Git。我找不到存储密码的方法。
我查看了GitHub的文档,上面说只要输入git config --global credential.helper wincred
行,但似乎没有意义,因为没有提示输入密码。我查看了Git的文档,上面说使用命令git credential-store --file ~/git.store store
并填写所有提示。bash模拟器无法读取凭据。
最后,我尝试通过git config --global user.password "5ecre7"
添加密码,就像添加电子邮件一样,但在运行一个示例git克隆库后,我让它回应我没有访问权限。有办法解决这个问题吗?
7条答案
按热度按时间n7taea2i1#
理想情况下,您应该输入:
这是来自Microsoft multi-platform credential manager GCM的。
然后,您的密码(或者更确切地说,现在使用的是令牌)将存储在Windows凭据管理器中。
更多信息请访问"Unable to change git account"。
第一次推送时,将出现一个弹出窗口,要求您输入目标服务器(例如
github.com
)的凭据(用户名/密码)如果没有,这可能意味着您的凭据 * 已经 * 存储。
如果它们不正确,一个简单的
printf "protocol=https\nhost=github.com\nusername=xxx"| git-credential-manager-core erase
将删除它们(在Windows,Linux或Mac上)在Git 2.29(Q4 2020)中,凭证协议接收端的解析器变得宽松,允许凭证助手以CRLF行结尾和LF行结尾终止行。
参见Nikita Leonov (
nyckyta
)的commit 356c473(2020年10月3日)。(由Junio C Hamano --
gitster
--合并到commit 542b3c2,2020年10月5日)credential
:将CR/LF视为凭证协议中的行尾签署人:尼基塔·列昂诺夫
签署人:约翰内斯·申德林
此修复使Windows用户更易于使用Git凭据:它允许凭证助手使用CR/LF行结束(通常在Windows上找到的"DOS行结束")而不是仅LF行结束("Unix行结束")来通信。
请注意,这会稍微改变行为:如果凭证帮助器产生例如带有尾随回车符的密码,则即使其余行仅以换行符结尾,该回车符现在也将被剔除,这指示回车符不应是行尾的一部分。
实际上,这种事情似乎不太可能发生。密码通常需要由非控制字符组成,URL需要有URL编码的特殊字符,而用户名,嗯,就是名字。
但是,它 * 确实 * 有助于Windows,在Windows中CR/LF行尾很常见:由于无法识别的命令会被凭证机制简单地忽略,即使是像
quit\r
这样的命令(显然是要中止)也会被Git简单地忽略(静默)。因此,让我们更改凭证机制以接受CR/LF和LF行尾。
当我们为凭证助手协议这样做时,我们 * 不 * 调整
git credential-cache--daemon
(man)(无论如何,它在Windows上不起作用,因为它需要Unix套接字)或git credential-store
(man)(它写入文件~/.git-credentials
,我们认为这是一个对用户不透明的实现细节,读作:我们希望用户 * 不 * 手动编辑此文件)。lfapxunr2#
抱歉,没有任何东西对我起作用(使用msys git 2.33.0),以下是我的解决方案:
转到某个源目录
5fjcxozz3#
我尝试了很多方法,但是Windows凭据没有为Git添加凭据。然后我做了下面的简单操作,它解决了我的问题。
然后我检查了Windows凭据管理器...瞧!它现在显示了一个类似“git:http://username@address”的凭据
我试着在配置文件中添加一些类似“[credential] helper = manager/wincrd”的东西,但是在这个解决方案之后就不需要那部分了,我删除了[credential]部分。有人说这可能是因为你的git服务器没有使用https。如果它使用https,你可以找到不同的解决方案。我的脸上仍然挂着傻乎乎的微笑
bwntbbo34#
我通常更喜欢使用SSH链接来克隆我的Git仓库。以下是我在Windows上的步骤:
通过这样做,我可以轻松地克隆我的仓库,而不需要使用我的GitHub帐户密码。
hgb9j2n65#
我在使用Windows 10 Pro和Git-2.23.0-64位时遇到了一个相关的问题。在我不得不更改我的Gitlab密码后,当我试图推/拉/...一个代表时,无论何时何地,
fatal: Authentication failed for
确实出现了。对我来说,下面的问题解决了:删除git,包括C:上的相应文件夹和重新安装git,但不(!)启用配置步骤中的Git凭据管理器选项
后来,当我试图推送我的代表时,凭证管理器有一次问我的凭证。现在一切都好了。
agyaoht76#
在Windows Git的credential.store插件中,将凭据存储在CredentialManager实用程序中,该插件名为manager。
要将其设置为git的凭证存储(如果尚未设置),请使用以下命令。这将把CredentialManager设置为git凭证存储
您可以使用下面的命令进行验证(它将作为管理器给予结果)
nwnhqdif7#
之前的答案对于GitHub可能已经过时了,但对于其他git仓库可能还可以。你会得到如下错误:
使用GitHub应用程序可能更容易。
如果确实要使用命令行,首先生成一个令牌,说明如下:https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
然后你用令牌代替密码,这是很痛苦的,因为令牌是一长串数字,你不容易记住,所以你会从密码管理器或不太安全的东西剪切和粘贴。
因此,我建议您运行GitHub桌面应用程序,您可以从:https://desktop.github.com/