git config --global 修改的是当前用户的全局配置文件:windows 上为 c:\users\${username}\.gitconfig,linux/macos 上为 ~/.gitconfig 或 ~/.config/git/config(后者优先)。

Git 配置文件有三个固定位置,按优先级从低到高分别是系统级、用户级、仓库级;修改时必须明确作用范围,否则可能不生效或覆盖错地方。
git config --global 修改的是哪个文件?
执行 git config --global 命令时,操作的是当前用户的「全局配置文件」,在 Windows 上是 C:\Users\${USERNAME}\.gitconfig,Linux/macOS 上是 ~/.gitconfig 或 ~/.config/git/config(后者优先级更高,若存在)。
- 这个文件只影响当前用户的所有 Git 仓库,不会干扰其他用户
- 直接编辑该文件和用
git config --global效果等价,但命令方式更安全(自动处理格式与转义) - 如果用命令设置失败,先检查是否误加了
--local或拼错参数,比如写成git config --gloabal就静默失败
/etc/gitconfig 和 .git/config 各自管什么?
/etc/gitconfig(Windows 是 C:\Program Files\Git\etc\gitconfig)是系统级配置,所有用户共享;.git/config 是仓库级配置,仅对当前 Git 项目生效,优先级最高。
- 系统级配置通常由管理员维护,普通用户一般不改它
- 仓库级配置常用于覆盖全局设置,比如某个项目强制禁用
core.autocrlf,或单独配user.name(如公司项目用工作邮箱,个人项目用 GitHub 邮箱) - 运行
git config --list默认合并显示三者,但加--system、--global、--local可分别查看,避免混淆来源
怎么确认某项配置到底从哪读的?
Git 不会告诉你某条配置来自哪个文件,但可以用 --show-origin 参数定位:
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
git config --show-origin --global user.email
输出类似:file:C:/Users/John\.gitconfig user.email=john@example.com,清楚标明路径和值。
- 没有
--show-origin时,git config --global user.email只返回值,无法判断是否被本地仓库覆盖 - 遇到配置不生效,优先跑一遍带
--show-origin的命令,再查对应文件内容 - 注意:某些 GUI 工具(如 VS Code 内置 Git)可能绕过命令行配置,需单独检查其设置
修改配置后不生效的常见原因
最常踩的坑不是路径写错,而是作用域和缓存问题:
- 在某个 Git 仓库里执行
git config --global core.editor "code --wait",结果只有该仓库能用 VS Code 编辑器——因为--global没问题,但该仓库的.git/config里可能已存在core.editor条目,优先级更高 - 修改了
.gitconfig文件但没重启终端,部分 Git 客户端(尤其是旧版 Git Bash)会缓存配置 - Windows 下用记事本保存
.gitconfig时默认加 BOM,导致 Git 解析失败,建议用 VS Code、Notepad++ 等无 BOM 编辑器保存
配置本身没有“复杂逻辑”,但作用域叠加和文件编码这类细节,往往比语法更耗排查时间。










