提交时如何评估Git配置?

Mat*_*hew 3 git configuration

我正在设置My First Git Repo,并且正在运行;

git config --list
Run Code Online (Sandbox Code Playgroud)

我注意到我的某些配置值有多个条目;

core.autocrlf=input
[...]
core.autocrlf=false
Run Code Online (Sandbox Code Playgroud)

我猜这些值加倍,因为它们出现在多个配置文件(系统,全局,文件)中.我的问题是,哪些值优先?配置文件是否逐行读取,最后一个条目是否在提交期间使用?

nes*_*983 5

借用MYYN,这些是查找配置文件的三个地方:

  • $ GIT_DIR /配置
  • 〜/ .gitconfig(--global)
  • $(前缀)的/ etc/gitconfig

好的,想象一下你全局设置你的电子邮件到niko.schwarz@gmail.com.现在,我们制作一个新的回购:

$ cd /tmp
$ mkdir try && cd try
$ git init
$ git config user.email niko.schwarz@s-i.ch
$ touch hi
$ git -add .
$ git commit -m 'bla'
Run Code Online (Sandbox Code Playgroud)

然后,您的user.email将设置为两个值:

$ git config --list | grep niko.schwarz
user.email=niko.schwarz@gmail.com
user.email=niko.schwarz@s-i.ch
Run Code Online (Sandbox Code Playgroud)

但是如果查看日志,电子邮件地址将设置为特定于repo的地址:

$ git log | grep niko.schwarz
Author: Niko Schwarz <niko.schwarz@s-i.ch>
    Signed-off-by: Niko Schwarz <niko.schwarz@s-i.ch>
Run Code Online (Sandbox Code Playgroud)

因此,本地节拍全局,这是值列出的顺序.现在,通过一点点信念,我确实假设git config --list按顺序显示事物,使后者优先.