如何缓存git个人令牌凭证 避免每次拉取代码重复输入验证
Git拉取代码重复要求输入个人令牌问题解决方案
1 先确认凭证助手配置是否生效
- 执行以下命令检查当前生效的凭证助手配置:
git config --list | grep credential.helper - 如果输出结果中没有
cache相关内容,说明之前的配置未成功保存,执行以下命令全局配置cache模式,设置缓存时长为1天(86400秒,可自行调整数值):git config --global credential.helper "cache --timeout=86400"
2 排查cache模式不生效的常见原因
- 仅支持HTTPS协议:cache模式仅对HTTPS协议的仓库生效,如果你使用的是SSH协议的仓库,凭证走SSH密钥体系,和Git凭证助手无关。执行
git remote -v查看仓库地址,如果开头为git@或ssh://,属于SSH协议,可更换为仓库的HTTPS地址,或者配置SSH密钥实现免密拉取。 - 缓存仅保存在内存中:cache模式的凭证仅存在当前终端会话的内存里,关闭终端、重启系统、切换用户后缓存会自动清空。如果需要持久化存储凭证,可更换为store模式:
git config --global credential.helper store
注意:store模式会将凭证明文存储在用户根目录的.git-credentials文件中,仅建议在私人专用设备上使用 - 如果你使用Windows或Mac系统,更推荐使用系统原生的凭证管理器,安全性更高:
- Windows(新版Git):
git config --global credential.helper manager-core - Mac:
git config --global credential.helper osxkeychain
- Windows(新版Git):
3 排查局部配置覆盖问题
部分仓库可能单独设置了局部凭证助手配置,覆盖了全局配置。进入对应仓库目录执行以下命令检查局部配置:git config --local --list | grep credential.helper
如果有输出结果,说明存在局部配置,执行以下命令删除即可自动使用全局配置:git config --local --unset credential.helper
4 清除旧的错误凭证
如果之前输入过错误的个人令牌,错误凭证被缓存也会导致重复提示输入,执行以下命令清除对应域名的旧凭证,下次拉取时输入一次正确的令牌即可正常缓存:git credential reject https://你的仓库托管平台域名.com
(比如你的仓库在GitHub就填https://github.com,Gitee就填https://gitee.com)
内容的提问来源于stack exchange,提问作者Rpj
相关产品推荐
相关产品推荐

