gitcore.autocrlf

Why are there two different lines with core.autocrlf output with "git config -l"?


I'm trying to set core.autocrlf=true. But after executing git config --global core.autocrlf true the output of git config -l shows both these lines

core.autocrlf=false
... other settings ...
core.autocrlf=true

Why is this, and how can I ensure that autocrlf gets properly set to true?


Solution

  • You can know more with Git 2.8+:

    git config -l --show-origin
    

    That will give you a better idea from where those settings come from.
    Local config override global settings which overrides system settings.

    See a concrete example in "Where do the settings in my Git configuration come from?".

    Xavi Montero points out to the Pro Book "Getting Started - First-Time Git Setup" which mentions:

    If you are using version 2.x or later of Git for Windows, there is also a system-level config file at

    • C:\Documents and Settings\All Users\Application Data\Git\config on Windows XP, and
    • in C:\ProgramData\Git\config on Windows Vista and newer.

    This config file can only be changed by git config -f <file> as an admin.


    On Windows 10, Jon R reports the issue was in C:/Program Files/Git/etc/gitconfig.