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

配置git pull始终使用rebase=merges后未生效,该如何解决?

解决git pull不使用全局配置的pull.rebase=merges问题

问题核心原因

你遇到的情况是全局配置了pull.rebase=merges但git pull仍尝试执行merge(触发pull.ff=only的报错),但手动执行git pull --rebase正常。这大概率是本地仓库配置覆盖了全局配置,或是全局配置未正确生效。

排查与解决步骤

  1. 确认全局配置有效性
    执行命令检查全局pull.rebase的取值:

    git config --global --get pull.rebase
    

    如果返回值不是merges,重新执行全局配置命令:

    git config --global pull.rebase merges
    
  2. 检查本地仓库配置是否冲突
    进入当前仓库,执行命令查看本地pull.rebase设置:

    git config pull.rebase
    
    • 若返回false或空值,说明本地配置覆盖了全局规则,可同步本地配置为全局值:
      git config pull.rebase merges
      
    • 若不需要本地单独配置,也可直接删除本地的pull.rebase设置,让仓库继承全局配置:
      git config --unset pull.rebase
      
  3. 配置优先级说明
    Git配置优先级为:本地仓库配置 > 全局用户配置 > 系统配置。当本地存在pull.rebase设置时,会直接忽略全局配置。另外,pull.rebase生效后,pull.ff=only不会影响rebase流程(因为rebase不执行merge操作),无需修改该配置。

  4. 验证修复结果
    调整配置后执行git pull,此时应该会自动以rebase模式拉取远程代码,不会再触发快进失败的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:25:14