git配置优先级为local>global>system,对应文件为.git/config、~/.gitconfig(或~/.config/git/config)、/etc/gitconfig(或git安装目录etc/gitconfig),高优先级配置覆盖低优先级同名项。

Git 三个级别的配置文件位置是确定的,但路径因操作系统和 Git 安装方式略有差异;优先级顺序(local > global > system)决定了最终生效值,而不是文件存在与否。
仓库级配置文件:.git/config
每个 Git 仓库根目录下都有一个 .git 子目录,.git/config 就是该仓库的局部配置文件。
- 只对当前仓库生效,比如你改了
core.autocrlf,其他项目完全不受影响 - 新建仓库后该文件就存在;克隆来的仓库也自带,内容含
[remote "origin"]等信息 - Windows 下需开启“显示隐藏文件”才能在资源管理器里看到
.git目录 - 不建议手动编辑 —— 用
git config --local更安全,避免格式错误导致git命令报错
用户级(全局)配置文件:~/.gitconfig 或 ~/.config/git/config
这是你最常修改的配置文件,适用于当前用户所有仓库。
- Linux/macOS 默认路径是
~/.gitconfig;较新版本 Git(如 2.30+)也可能使用~/.config/git/config(XDG Base Directory 规范) - Windows 路径通常是
C:Users\.gitconfig,注意不是Documents或AppData - 该文件可能不存在 —— 第一次运行
git config --global user.name "xxx"就会自动生成 - 若两个路径都存在,Git 会按顺序读取:先
~/.config/git/config,再~/.gitconfig,后者可覆盖前者同名项
系统级配置文件:/etc/gitconfig 或 Git 安装目录下的 etc/gitconfig
这个文件影响本机所有用户和所有仓库,但实际很少需要动它。
- Linux/macOS 通常在
/etc/gitconfig - Windows 上常见于:
D:Program FilesGitmingw64etcgitconfig或C:Program FilesGitetcgitconfig(取决于安装路径) - 修改它通常需要管理员权限,
git config --system很可能报Permission denied - 多数人不需要碰它;除非你在企业环境统一部署 Git 行为(比如强制
core.editor或禁用某些钩子) - 系统级配置仅作为兜底,默认值来源,高优先级配置会直接覆盖它
真正容易被忽略的是:配置项是否生效,不看它写在哪,而看它是否被更高优先级的同名配置覆盖。比如你在 ~/.gitconfig 设置了 user.email,又在某个仓库里执行 git config --local user.email "team@project",那这个仓库提交时就一定会用后者 —— 即使你根本没打开过 .git/config 文件。











