You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R的git2r包推送代码时遇‘http.followRedirects未找到’错误求助

解决git2r推送时"http.followRedirects"错误的方案

问题原因

你通过HTTPS协议克隆仓库,却尝试用SSH凭证推送,协议不匹配触发了HTTP相关配置的查找;另外旧版本git2r依赖的libgit2库可能未包含http.followRedirects这个配置项。

修复步骤

  • 改用SSH协议克隆仓库
    将克隆命令替换为GitHub的SSH地址(格式为git@github.com:path/repository.git),这样远程仓库默认走SSH协议,推送时不会触发HTTP配置查找:

    clone(url = "git@github.com:path/repository.git", local_path = my_path)
    
  • 更新git2r及底层依赖
    旧版本git2r依赖的libgit2可能缺失目标配置项,更新到最新版本:

    install.packages("git2r")
    

    若需要最新开发版,可从源码安装(需本地有编译环境):

    remotes::install_github("ropensci/git2r")
    
  • 保留HTTPS协议的适配方案
    若不想重新克隆仓库,可修改远程地址并配置HTTP参数,同时使用个人访问令牌(PAT)作为凭证:

    # 修改远程origin为HTTPS地址
    remote_set_url(repo, "origin", "https://github.com/path/repository.git")
    # 手动设置http.followRedirects配置
    config(repo, http.followRedirects = TRUE)
    # 创建HTTPS凭证(GitHub需用PAT替代密码)
    cred <- git2r::cred_user_pass(username = "my_name", password = "你的个人访问令牌")
    # 执行推送
    push(repo, "origin", "refs/heads/master", credentials = cred)
    

    注:GitHub已禁用密码登录,必须使用个人访问令牌(PAT),可在GitHub账户设置中生成。

额外提醒

  • 确认你的SSH密钥已添加到GitHub账户的SSH设置中,否则SSH推送会失败。
  • 可在终端执行git config --list查看本地全局git配置,排查是否有冲突项。

内容的提问来源于stack exchange,提问作者José Carlos Checoli Figueiredo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:10:16