Fixing the Git configuration for a local repository shared between different operating systems
Warning
This article is just about sharing the same local repository between different operating system, i.e. accessing a shared folder from these different systems.
Certain Git configuration (like core.ignoreCase
) must be set correctly
for the underlying operating system to have Git operating properly. When
sharing your repository with a different operating system (this happens
quite frequently when using virtual machines), there may be no single
correct configuration and you have to carefully decide which Git
configuration should be used.
Configure core.ignoreCase for shared repository
Problems will only arise when sharing a case-sensitive file system
(default for Linux) with a case-insensitive operating system (Windows).
In this case, core.ignoreCase=false
is usually the safer default. To
fix, invoke Open Git-Shell for the problematic repository and
invoke:
$ git config --unset core.ignoreCase
To be sure that there is no global core.ignoreCase
configuration left
somewhere else, make sure the output of following command is empty:
$ git config core.ignoreCase
Finally, to disable further warnings on the other case-insensitive operating system, invoke:
git config smartgit.warning.git-core-ignorecase-mismatch false
Configure core.ignoreCase for copied repository, which isn’t shared anymore
Things are different if the repository has just been copied from a different operating system but isn’t shared anymore. In this case, there is a correct configuration for your current operating system:
- Windows:
git config core.ignoreCase=true
- MacOS:
git config core.ignoreCase=true
(unless you are using an older, case-sensitive file system) - Linux:
git config --unset core.ignoreCase