Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图理解wincred与git for windows-困惑_Git_Github - Fatal编程技术网

试图理解wincred与git for windows-困惑

试图理解wincred与git for windows-困惑,git,github,Git,Github,在学习git教程的同时,我今天第一次将https推送到git hub上的远程设备,教程中提到了以下命令,以避免不停地键入密码详细信息: git config --global credential.helper wincred 我的问题是这个概念是如何运作的?这是我第一次遇到凭证助手。我不确定它是如何与Windows和Git一起工作的,它存储在哪里,以及在我推拉时如何进行身份验证 我曾尝试在网上搜索此信息,但没有找到任何信息以简单的方式为初学者解释此问题。如果您对credential.help

在学习git教程的同时,我今天第一次将https推送到git hub上的远程设备,教程中提到了以下命令,以避免不停地键入密码详细信息:

git config --global credential.helper wincred
我的问题是这个概念是如何运作的?这是我第一次遇到凭证助手。我不确定它是如何与Windows和Git一起工作的,它存储在哪里,以及在我推拉时如何进行身份验证


我曾尝试在网上搜索此信息,但没有找到任何信息以简单的方式为初学者解释此问题。

如果您对credential.helper使用
wincred
,git将使用标准windows凭据管理器存储您的凭据

您可以从控制面板设置查看凭据管理器


有关Windows凭据管理,请参阅。git接口只是使用提供的API安全地存储您的凭证。像和这样的函数用于检查存储的凭据并添加或更新它们。

我最近也遇到了这个问题。我一直“未经授权”访问一个存储库,我的标准GitHub帐户在读取该存储库时没有问题。当然,这是一个私人存储库

因此,在高层:

您可以通过以下方式进行git克隆:

git clone httpS://user:password@githib.com/org/repo.git
当然,每次都很痛苦(在git介绍页面中没有记录)

或者,git CLI可以将您的用户名/密码存储在名为Windows凭据存储的安全加密存储中。这是您在输入
git config--global credential.helper wincred时告诉git的操作。

那你就这么做吧

git clone httpS://githib.com/org/repo.git
它神奇地工作,使用您存储的凭据。当Git注意到它是一个私有存储库时,它不会提示输入用户名/密码,而是进入Windows凭据存储,获取您的用户名/密码,并使用它。它以安全的方式通过https进行传输。我强调httpS是为了表明这只在httpS上有效,但是如果在Git存储库上单击“复制”命令,httpS是默认的

理论上,如果您省略用户名和密码,并且您的用户名/密码没有存储,git应该提示您输入用户名和密码;然后将其存储起来以备后续使用。就我而言,它没有。请继续阅读以了解修复方法

它存放在哪里

单击“开始”,然后键入“Cred”并转到Windows凭据管理器

然后单击“Windows凭据”

<>在所有的东西中间可能有一个GITHUB条目。(这是一个检查存储密码的好机会!)在我的情况下,我有git条目,我发誓我已经很久没有更改密码了,但我所要做的就是重新输入密码,然后git clone按照指定的用户名正常工作

要验证设置的位置,请键入

git config --list
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
... lots of stuff
credential.helper=manager
.... this is important:
user.name=John Q. Public
user.email=example@users.noreply.github.com
winupdater.recentlyseenversion=2.25.0.windows.1
.... more stuff
credential.helper=wincred

我试着把多汁的部分消毒一下。您可以使用输入的CLI命令验证最后一行。要找到“wincred”的位置,请按照图片上方的步骤进行操作。

有详细的解释感谢@gauthaman我以前没有遇到过credential manager,因此如果两个不同的人在同一台机器上使用git for windows,他们会保存两组单独的凭据吗?不会有任何混淆发生的机会?@jobe不是问题,单独的存储和每个用户单独的证书密钥保护他们注意:凭据存储为“通用凭据”,如果您更改Windows密码,通常以
git:https/…
开头,我建议删除这些条目,然后再次从git控制台运行
git config--global credential.helper
。完成后,请确保关闭并重新打开相关应用程序(如Visual Studio)。对不起,我查看了文档,但作为初学者,我觉得它仍然不能帮助我理解。