Единственная причина в том, что Unix исторически имел соглашение о всех читаемых человеком текстовых файлах, заканчивающихся символом новой строки.В то время это позволило избежать дополнительной обработки при отображении или объединении текстовых файлов и избежать обработки текстовых файлов по-разному по сравнению с файлами, содержащими другие виды данных (например, необработанные двоичные данные, которые не читаются человеком).
Из-заВ соответствии с этим соглашением многие инструменты той эпохи ожидают окончания новой строки, включая текстовые редакторы, инструменты сравнения и другие инструменты обработки текста.Mac OS X была построена на BSD Unix, а Linux был разработан для совместимости с Unix, поэтому обе операционные системы унаследовали одно и то же соглашение, поведение и инструменты.
Windows не была разработана для совместимости с Unix,поэтому он не имеет такого же соглашения, и большинство программ для Windows будут отлично работать без запаздывающего перевода строки.
Но, поскольку Git был разработан для Linux впервые, и на нем основано много программного обеспечения с открытым исходным кодом.Unix-совместимые системы, такие как Linux, Mac OS X, FreeBSD и т. Д., Большинство сообществ с открытым исходным кодом и их инструменты (включая языки программирования) продолжают следовать этим соглашениям.
Существуют технические причины, которые имели смысл в 1971 году,но в эту эпоху это в основном соглашение и поддержание совместимости с существующими инструментами.