GitHub向新旧仓库推送代码不一致:SSH认证正常但新仓库要求HTTPS登录
问题原因
新建仓库的本地 remote 地址默认配置为 HTTPS 协议,和你已配置的全局SSH认证规则不匹配,因此会触发HTTPS密码校验提示。
解决方案
单个异常仓库修复
- 进入对应仓库的本地目录,执行命令查看当前远程地址配置:
git remote -v
返回结果中如果origin对应的地址为https://github.com/开头,即可确认问题根源。
- 执行命令替换远程地址为SSH协议格式,替换命令中的
{github_username}为你的GitHub用户名,{new_repo_name}为对应仓库名称:
git remote set-url origin git@github.com:{github_username}/{new_repo_name}.git
替换完成后可再次执行git remote -v确认地址已更新,之后执行git push就会走SSH密钥认证。
全局强制所有仓库走SSH协议(一劳永逸配置)
如果要避免后续新建/新克隆的仓库再出现类似问题,可配置Git全局地址转换规则,自动把所有GitHub的HTTPS请求转换为SSH协议:
git config --global url."git@github.com:".insteadOf "https://github.com/"
配置完成后执行git config --global --list即可查看是否成功添加对应规则,规则生效后所有仓库的推送、拉取操作都会默认走SSH协议,不会再触发HTTPS认证提示。
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

