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

Ubuntu20.04下Git升级至2.37后git pull报preserve无效错误,降级失败如何解决?

解决Git升级后git pull报错及降级依赖问题

我来帮你搞定这个问题,给你两种可行方案,优先推荐第一种无需降级的方法,操作更简单也不会影响系统其他依赖:

方案一:修复Git配置(推荐)

Git在2.26版本之后就废弃了pull.rebase的preserve选项,替换成了merges,这就是你升级到2.37后报错的核心原因。只需要修改配置就能解决:

  • 先检查当前的pull.rebase配置,确认是全局还是单个仓库的设置:
    git config --get-all pull.rebase
    
  • 如果是全局配置,执行以下命令修改:
    git config --global pull.rebase merges
    
  • 如果只是单个仓库的问题,进入该仓库目录,去掉--global参数执行:
    git config pull.rebase merges
    
  • 也可以直接编辑配置文件:
    • 全局配置文件路径:~/.gitconfig,找到pull.rebase=preserve改成pull.rebase=merges
    • 单个仓库配置文件路径:仓库根目录下的.git/config,同样修改对应内容

修改完成后再执行git pull,应该就能正常运行了。

方案二:解决降级的依赖问题

如果你坚持要降级到2.25版本,需要同时降级git-man(因为Git依赖对应版本的git-man):

  • 先确认对应版本的git-man编号,执行:
    apt-cache showpkg git-man
    
    找到和git=1:2.25.1-1ubuntu3.5匹配的git-man版本,应该是1:2.25.1-1ubuntu3.5
  • 同时安装指定版本的Git和git-man:
    sudo apt-get install git=1:2.25.1-1ubuntu3.5 git-man=1:2.25.1-1ubuntu3.5
    
  • 安装完成后,用以下命令确认版本是否降级成功:
    git --version
    

补充说明

出现这个问题的核心逻辑是:Git 2.26版本对pull.rebase的选项做了调整,preserve被标记为废弃并由merges替代,升级后原有配置中的无效值导致git pull报错。而降级时因为系统中当前的git-man版本高于你要安装的Git版本,触发了依赖检查失败,所以需要同时指定两个包的版本来解决。

内容的提问来源于stack exchange,提问作者Mona

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 22:02:46