I'm using SourceTree and Git 2.21.0 for Windows and was having a lot of trouble with configuration. SourceTree is set to use the system git install and shows the proper 2.21.0 version number. I ran these commands in a non-repository directory in command prompt and got surprising results:
- `git config --list` outputs mostly my `%ProgramData%\Git\Config` file's contents.
- `git config --global --list` output conflicting configuration data
- `git config --global --edit` opened `C:\Users\Me\.gitconfig`. I thought this was just the SourceTree global, I expected it to open the one in ProgramData.
- `git config --system --edit` opened `C:\Program Files\Git\mingw64\etc\gitconfig` as expected
- From the `%ProgramData%\Git\` directory, `git config --edit` produced an error.
> fatal: not in a git directory
How is `git config` able to list my `%ProgramData%\Git\Config` contents but not edit that file and what is it if it isn't System, Global, or Local config? Why is `git config --global` using the SourceTree file, is that just the default path to the Global config for git on Windows?
Git for Windows has a 4th configuration file that cannot currently (v2.21.0) be edited from command line that is stored as `C:\Program Data\Git\config`. They are loaded before even System and so have the lowest priority.
Using `git config --list --show-origin` will show you where each configuration comes from.
Somehow, I got it in my head that this was the location of the global config file in windows when it is actually still `C:\Users\<UserName>\.gitconfig` which is the same file used by SourceTree's embedded git if you use that.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.