Частой причиной этого являются разные окончания строки. Вы делитесь репо с кем-то еще, используя другую ОС? SVN делает некоторые манипуляции с окончаниями строк. Git, с другой стороны, хранит файлы побайтно, как они есть по умолчанию. Это означает, что когда пользователь Windows сохраняет файл с окончанием строки \ r \ n, а пользователь Linux сохраняет файл с переводом строки \ n, каждая строка выглядит измененной, и если какие-либо другие изменения находятся в процессе воспроизведения, это вызывает конфликты повсюду. Чтобы изменить способ обработки концов строк, используйте параметр конфигурации «core.autocrlf». В репозитории, в котором используются разные ОС, я рекомендую установить для него значение «input» для пользователей Linux и «true» для пользователей Windows:
git config [--global] core.autocrlf input
или
git config [--global] core.autocrlf true
На самом деле, я бы сказал, просто используйте эти настройки глобально все время. Они спасут тебя от сердечной боли. Прочтите больше о core.autocrlf на странице справки git-config и обратите внимание, что если вы страдаете от этой проблемы и включаете autocrlf в существующем репозитории, вы можете столкнуться с некоторым поразительным поведением, но это можно объяснить.