如何解决Git pull报host provider override找不到gitlab的警告
警告产生原因
该警告由Git绑定的Git Credential Manager(GCM,凭据管理器)抛出:
Git配置(全局/当前仓库/系统层级任意一处)中设置了凭据主机提供方覆盖参数,参数值为gitlab,但Git 2.31.0.windows.1版本自带的GCM没有内置名为gitlab的对应提供方实现,无法加载指定的凭据提供方,因此自动回退到主机自动检测模式,触发警告。
常见触发场景:
- 此前为适配自建GitLab服务手动修改过凭据相关配置,后续升级Git版本后,新版GCM调整了GitLab提供方的标识命名,旧配置失效
- 此前安装过第三方GitLab凭据辅助插件,插件卸载后残留了对应配置项
该警告不影响git pull等基础操作正常执行,但错误配置会导致GCM每次都走自动检测逻辑,额外产生不必要的开销。
彻底消除警告的操作步骤
- 定位错误配置所在的层级
依次执行以下命令,排查三个层级的Git配置中哪里存在值为gitlab的凭据提供方配置:
执行后哪条命令返回了# 排查全局配置 git config --global --get credential.provider git config --global --get-regexp credential\..*\.provider # 排查当前仓库本地配置 git config --local --get credential.provider git config --local --get-regexp credential\..*\.provider # 排查系统级配置 git config --system --get credential.provider git config --system --get-regexp credential\..*\.providergitlab结果,就说明对应层级存在错误配置。 - 删除对应错误配置
根据定位到的配置层级,执行对应删除命令:- 若错误配置在全局层:
# 删除通用提供方配置 git config --global --unset credential.provider # 如果排查结果是带域名的定向配置(比如credential.https://gitlab.xxx.com.provider gitlab),执行对应删除,把域名替换成查到的实际地址即可 # 例:git config --global --unset credential.https://gitlab.example.com.provider - 若错误配置在当前仓库本地层:将上述命令中的
--global参数替换为--local执行即可 - 若错误配置在系统层:将上述命令中的
--global参数替换为--system执行即可,注意修改系统级配置需要用管理员权限打开终端
- 若错误配置在全局层:
- 验证效果
配置删除后重新执行git pull,警告就不会再出现。如果确实需要手动指定GitLab作为凭据提供方,先把GCM升级到最新版本,新版GCM原生支持GitLab凭据管理,使用官方规定的提供方标识配置即可,不会触发警告。
内容的提问来源于stack exchange,提问作者gitrust
相关产品推荐
相关产品推荐

