如何将Git默认拉取策略改回合并模式?设置后仍进入变基流程
解决Git拉取仍使用变基的问题
先排查本地仓库配置
全局配置被本地仓库配置覆盖是最常见的原因,执行以下命令查看当前仓库的pull相关配置:
git config pull.rebase git config pull.merge
如果输出为true,说明该仓库单独设置了变基规则,会直接覆盖你的全局配置。
重置本地仓库的pull配置
若本地存在单独配置,执行以下命令清除本地的pull相关设置,让全局配置生效:
git config --unset pull.rebase git config --unset pull.merge
确认全局配置正确性
再执行全局配置检查命令,确保设置符合预期:
git config --global --get pull.rebase git config --global --get pull.merge
正常情况下应该分别输出false和true,如果结果不符,重新执行全局设置命令:
git config --global pull.rebase false git config --global pull.merge true
补充说明:Git合并策略的核心要点
- 配置优先级:本地仓库配置(
.git/config)> 全局配置(~/.gitconfig或~/.config/git/config)> 系统配置(/etc/gitconfig),所以遇到配置不生效时,优先检查本地仓库设置。 - Fast-Forward(ff)合并:默认情况下,Git拉取时如果本地分支没有新提交,会直接用快进合并,不会生成新的合并提交;如果本地有新提交,才会生成合并提交。若想强制禁用快进、每次都生成合并提交,可设置
git config --global merge.ff false。 - pull.rebase与pull.merge的区别:
pull.rebase=true会在拉取时将本地提交变基到远程分支顶端,保持提交历史线性;pull.merge=true则采用普通合并方式,保留提交历史的分叉结构。
内容的提问来源于stack exchange,提问作者Sarthak
相关产品推荐
相关产品推荐

