Windows 10下Git系统级配置文件位置混淆问题咨询
Git系统级配置文件的那些事儿
嘿,这个问题我碰到过好多次,给你拆解清楚:
为什么会有两个系统级配置位置?
这其实是Git for Windows的特性导致的:
C:\Users\user\AppData\Local\Programs\Git\mingw64/etc/gitconfig是Git for Windows自带的mingw64环境默认系统配置,相当于Git本身的内置基础配置,里面是官方预设的一些参数,比如默认换行符处理、证书配置之类的。这个文件属于Git安装包的一部分,更新Git的时候可能会被覆盖。C:\ProgramData/Git/config是Windows系统层面的全局系统配置,专门用来给系统内所有用户统一设置Git参数,比如全局代理、默认用户名邮箱、编辑器路径等。这个文件独立于Git安装包,修改后不会被Git更新影响。
Git在Windows上启动时会按git config --list --show-origin的输出顺序加载这两个配置,后面出现的同名配置项会覆盖前面的。
是否应该仅保留一个?
完全没必要,也不建议这么做:
- 保留mingw64里的配置:它是Git的基础默认配置,保证Git能正常运行,而且你一般不需要修改它,更新Git时自动同步官方的默认设置也挺省心。
- 保留ProgramData里的配置:这是你自定义系统级全局设置的专属位置,比如给所有用户统一设置Git代理,修改这个文件比逐个调整用户配置高效得多,还不会被Git更新冲掉。
如果强行删除其中一个,要么会丢失Git的基础默认配置,要么会失去系统级全局配置的能力,反而给自己添乱。
Eclipse会忽略C:\ProgramData/Git/config吗?
不会的,除非你手动修改了EGit的配置:
- Eclipse的Git插件(EGit)默认遵循Git的标准配置加载流程:先加载系统级配置(包括上述两个文件),然后加载用户级配置(也就是
%APPDATA%/Git/config或者用户目录下的.gitconfig),最后加载当前仓库的本地配置。 - 只有当你在Eclipse的「Window > Preferences > Team > Git > Configuration」里手动勾选了“Use custom configuration file”并指定了文件路径,才会忽略系统级和默认用户级配置,只使用你指定的文件。
所以正常情况下,C:\ProgramData/Git/config里的配置会被EGit读取并生效。
内容的提问来源于stack exchange,提问作者u123




