Improving cross-subsystem git workflow: The different git configuration files
Git configuration settings can be stored in three different files: The system configuration file, the global configuration file and the repository's local configuration file. See git on Windows - location of configuration files [1] for their locations.
When you use multiple subsystems on Windows (like MSYS2, Cygwin or any of the the Windows Subsystem for Linux distributions) it can be a chore to keep the git configurations synchronized. In other words: The less configuration files to maintain, the better.
Whether it's git for Windows, or one of the subsystem-specific git binaries:
Each of the git binaries that runs on Windows expands the tilde (~
) to the home directory, and the path separator is always a slash (/
).
These features can be used in our advantage in order to simplify the git configuration files between all subsystems.
Re-defining the system
The system configuration file is meant to store all system-specific configuration settings, which will be applied to all users and git repositories on the system.
If you're the only user of your workstation, it makes sense to re-define system as subsystem:
All subsystem-dependent git configuration settings should be set in the system git configuration file.
This means that settings depending on underlying binaries, like …