在Windows上添加Git凭据

g6ll5ycj  于 2023-02-11  发布在  Git
关注(0)|答案(7)|浏览(541)

我使用的是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克隆库后,我让它回应我没有访问权限。有办法解决这个问题吗?

n7taea2i

n7taea2i1#

理想情况下,您应该输入:

git config --global credential.helper manager-core

这是来自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--daemonman)(无论如何,它在Windows上不起作用,因为它需要Unix套接字)或git credential-storeman)(它写入文件~/.git-credentials,我们认为这是一个对用户不透明的实现细节,读作:我们希望用户 * 不 * 手动编辑此文件)。

lfapxunr

lfapxunr2#

抱歉,没有任何东西对我起作用(使用msys git 2.33.0),以下是我的解决方案:

$ git config --global credential.helper store

转到某个源目录

$ git add . && git commit -m "some commit" && git push origin master
Username for 'https://github.com': <type user name here>
Password for 'https://<typed user name>@github.com': <type generated token here>
5fjcxozz

5fjcxozz3#

我尝试了很多方法,但是Windows凭据没有为Git添加凭据。然后我做了下面的简单操作,它解决了我的问题。

  • 我从Windows凭据管理器中删除了相关凭据。
  • 然后我从项目文件夹中打开了Git Bash。
  • 然后写了“git fetch origin”命令。
  • Git Bash首先要求输入用户名,然后输入密码。

然后我检查了Windows凭据管理器...瞧!它现在显示了一个类似“git:http://username@address”的凭据
我试着在配置文件中添加一些类似“[credential] helper = manager/wincrd”的东西,但是在这个解决方案之后就不需要那部分了,我删除了[credential]部分。有人说这可能是因为你的git服务器没有使用https。如果它使用https,你可以找到不同的解决方案。我的脸上仍然挂着傻乎乎的微笑

bwntbbo3

bwntbbo34#

我通常更喜欢使用SSH链接来克隆我的Git仓库。以下是我在Windows上的步骤:

  • 通过PuTTYgen生成公私钥对。
  • 将公钥添加到我的GitHub帐户。

通过这样做,我可以轻松地克隆我的仓库,而不需要使用我的GitHub帐户密码。

hgb9j2n6

hgb9j2n65#

我在使用Windows 10 Pro和Git-2.23.0-64位时遇到了一个相关的问题。在我不得不更改我的Gitlab密码后,当我试图推/拉/...一个代表时,无论何时何地,fatal: Authentication failed for确实出现了。对我来说,下面的问题解决了:
删除git,包括C:上的相应文件夹和重新安装git,但不(!)启用配置步骤中的Git凭据管理器选项
后来,当我试图推送我的代表时,凭证管理器有一次问我的凭证。现在一切都好了。

agyaoht7

agyaoht76#

在Windows Git的credential.store插件中,将凭据存储在CredentialManager实用程序中,该插件名为manager
要将其设置为git的凭证存储(如果尚未设置),请使用以下命令。这将把CredentialManager设置为git凭证存储

git config --global credential.store manager

您可以使用下面的命令进行验证(它将作为管理器给予结果)

git config credential.helper
nwnhqdif

nwnhqdif7#

之前的答案对于GitHub可能已经过时了,但对于其他git仓库可能还可以。你会得到如下错误:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/username/repo.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/

相关问题