Там много странностей. На прим. в винде есть разрешение на чтение и запись в файл. А на unix к тому же есть разрешение на исполнение файла. На винде если есть разрешение на чтение, то выполнение по дефолту true.
Или к прим. одинаковые файлы сделанные на мак и на виндовс будут иметь разный вес, т.к. в виндовс перенос строки кодируется как CRLF, а на мак просто LF, из за этого одинаковые текстовые файлы созданные на мак и на виндовс будут иметь разную хэш сумму.
А CRLF - это атавизм который остался от старых принтеров где CRLF кодировали движение картеки.
И кста, git вроде сохраняет у себя файл с переносом LF, а выдаёт виндовому юзеру уже перекодированный с вставками CRLF