Ищете статьи, документацию или прямолинейные знания о том, как разные системы управления версиями различают (или обнаруживают) тип файла (двоичный или текстовый). Особый интерес представляет то, как Git делает это по сравнению с Mercurial.
Они смотрят на: Расширения файлов? Сигнатуры или содержимое файлов (например, UTF8 этого файла)? Сочетание разных вещей?