我总是通过HTTPS克隆私有Github repos。我有个人访问令牌用作"密码"。当git第一次请求时。
在很长一段时间里,当我在命令行中运行东西时,我可以在不需要git请求凭证的情况下进行git操作。
但是现在它总是在命令行中请求凭据!
我已经尝试了各种组合来更改git config
凭据。helper(改为store/wincred/manager/cache
)和一堆其他东西,没有工作
有趣的是,如果我在VSCode终端运行git命令,那么它不会要求凭证,只是工作。但是我不想每次我需要做一些git的事情时都启动VSCode(特别是当我的计算机由于其他任务而内存不足时)
我需要一个永久的方法来解决这个问题,同时仍然使用HTTPS远程url +个人访问令牌
我使用的是Git版本2.40.0.windows.1
在尝试了许多在线指南后,我现在的.gitconfig
很可怕
[credential "github.com"]
authority = Github
interactive = never
preserve = true
[credential]
helper = manager
modalPrompt = true
writelog = true
我终于找到了根本原因
显然是因为PATH
中没有git-credential-manager.exe
一旦我做set PATH=C:Gitmingw64bin;%PATH%
和做一个git push
,我提示web浏览器Github登录,然后事情只是现在工作
在Windows上使用manager-core并指定提供程序。对于github,我们需要github提供程序,Bitbucket有一个Bitbucket提供程序,并且有一个通用的用于正常使用。
所以要设置为generic作为默认值,并使用github的github提供程序,具体使用:
git config --global credential.helper manager-core
git config --global credential.provider generic
git config --global credential.github.com.provider github
如果您使用的是Atlassian Bitbucket本地服务器,请使用generic。'bitbucket'提供程序是为了他们的云服务。
使用Git 2.39+, GCM(来自微软的Git凭证管理器)不再是"manager-core
",正如我在这里解释的。
我只使用git config --global credential.helper manager
任何远程服务器(GitHub, GitLab, Bitbucket本地服务器)
只是确保看到你的GitHub令牌(PAT)当做:
printf "host=github.comnprotocol=https" | git credential-manager get
printf命令甚至可以在一个简单的Windows CMD(不需要bash)中工作,前提是您的%PATH%
包括:
set "GH=%ProgramFiles%Git"
set "PATH=%GH%bin;%GH%cmd;%GH%usrbin;%GH%mingw64bin;%GH%mingw64libexecgit-core;%PATH%"
不仅允许使用printf
(%GH%usrbin
),还允许使用git-credential-manager(-core).exe
(%GH%mingw64bin
)。