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

设置git config --global merge.commit no后,合并仍自动提交?

全局配置merge.commit=no未生效的原因及解决办法

可能的原因及对应解决步骤

  • 本地仓库配置覆盖全局配置
    Git的配置优先级为:本地仓库配置(.git/config)> 全局配置(~/.gitconfig)> 系统配置。如果你的本地仓库中已设置merge.commit=yes,会直接覆盖全局的no设置。
    验证命令:git config --local merge.commit,若输出yes则说明存在覆盖。
    解决:执行git config --local merge.commit no修改本地配置,或用git config --local --unset merge.commit删除本地该配置项。

  • 全局配置未被正确读取或写入
    可能存在全局配置未成功写入,或Git读取的并非你修改的~/.gitconfig文件的情况。
    验证命令:git config --list --show-origin,查看输出中是否存在merge.commit=no,且来源为file:/Users/你的用户名/.gitconfig。
    解决:若看不到该配置,重新执行git config --global merge.commit no确保写入成功;若来源不符,检查是否有环境变量GIT_CONFIG修改了Git的配置文件路径。

  • 配置值的布尔格式问题
    尽管Git支持yes/no作为布尔配置值,但部分版本可能对格式更敏感,尝试用false替代no:
    执行命令:git config --global merge.commit false,之后再测试git merge feature是否生效。

补充说明

merge.commit=no的作用等同于每次执行git merge时添加--no-commit参数,合并完成后会停留在未提交状态,允许你检查或修改合并结果后再手动提交;而merge.ff=no是强制Git创建合并提交,即使当前分支可以快进合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:57:20