Windowsでは大文字と小文字が区別されません(より正確には、大文字と小文字が区別されます)。名前が大文字と小文字だけが異なる2つのファイルが存在する可能性はありません。大文字と小文字のみが異なる2つのファイル名は同じファイル名です。限目。
そのため、Gitはリポジトリをウォークアウトし、2つの問題のあるファイルの最初の1つに到達するまで、次々にファイルをチェックアウトします。Gitはそれをチェックアウトし、2番目のファイルに到達するまでビジネスをさらに進めます。繰り返しますが、Gitはそれをチェックします。Windowsの観点からは、ファイル名は最初のファイルと同じであるため、最初のファイルは単に2番目のファイルで上書きされます。これにより、Gitは、最初のファイルが2番目のファイルと同じ内容になるように変更されたと見なします。
これはGitとは何の関係もないことに注意してください。tarball、zipファイル、またはSubversionリポジトリがある場合もまったく同じことが起こります。
複数の異なるプラットフォームで開発を行う場合は、それらのプラットフォームの制限を尊重し、サポートするすべてのプラットフォームの最小公分母に限定する必要があります。WindowsはADSをサポートしていますが、Linuxはサポートしていません。OSXはリソースフォークをサポートしていますが、Windowsはサポートしていません。BSDは大文字と小文字の区別をサポートしていますが、Windowsはサポートしていません。したがって、それらのいずれも使用できません。仕方ないよ。
core.ignorecase
正反対の問題を処理するため、ここでは役に立ちません。