Я не знаю наверняка, как diff определяет, какие файлы находятся в списке, но я предполагаю, что он сначала сравнивает хэши SHA-1 двух файлов; если они одинаковые, файлы не изменились. Если они различаются, он запускает diff, чтобы увидеть, являются ли различия значительными (то есть он может игнорировать проблемы с окончанием строки и т. Д.).
Я предполагаю, что это проблема с окончанием строки. В Windows diff не видит проблем с окончаниями строк CRLF, но в Linux он помечает файлы как разные. Свойства Git, на которые вы хотите посмотреть, это core.whitespace (документация здесь: http://progit.org/book/ch7-1.html). Проверьте, как он настроен на каждой ОС (git config -l
). Что вам, вероятно, нужно, чтобы он имел cr-at-eol
опция установлена.