Причина заключается в различной реализации того, как файловая система хранит имя файла.
В Юникоде, Ü может быть представлено двумя способами, один - одним Ü, другой - U + «объединяющий умлаут». Строка Unicode может содержать обе формы, но, поскольку сложно иметь обе, файловая система нормализует строку Unicode, устанавливая для каждого umlauted-U значение Ü или U + «объединяющий символ umlaut».
Linux использует первый метод, называемый Normal-Form-Composed (или NFC), а Mac OS X использует второй метод, называемый Normal-Form-Decomposed (NFD).
Очевидно, Git не заботится об этом и просто использует последовательность байтов имени файла, что приводит к проблеме, с которой вы столкнулись.
Поток списка рассылки Git, Mac OS X и специальные символы немецкого языка содержат исправление, позволяющее Git сравнивать имена файлов после нормализации.