Git - символы конца строки, вызывающие ложные различия - PullRequest
2 голосов
/ 18 октября 2019

У меня есть репозиторий git, который размещен в битовой корзине. Я использую дерево исходников для работы с git. У меня есть запрос на извлечение, в котором некоторые файлы отображаются как измененные, но содержимое файла практически не изменяется. Я заметил это, когда сравнил две ветви в ведре битов и в исходном дереве. Вот как выглядит diff в этих инструментах:

-j1
-j2
-j3
+j1
+j2
+j3

Это очень запутанно, потому что (1) он выглядит так, как будто есть много изменений, даже при том, что реальных изменений нет, и (2) любые изменения в конкретной строке могут быть пропущены, если у вас есть огромный файл (в отличие от небольшого файла, который я показал выше.)

Но, когда я сравнил две ветви в командной строке (git diff branch1 branch2), яувидел, что в конце каждой строки в одной ветви есть символ ^M, который отвечает за разницу.

Как обеспечить, чтобы символы конца строки, такие как ^M, TAB, SPACE и т. Д. Удаляются в git, чтобы избежать путаницы в запросах на удаление? Кроме того, как мне узнать, почему эти символы EOL были добавлены в первую очередь?

1 Ответ

1 голос
/ 18 октября 2019

Попробуйте сначала

git config --global core.autocrlf false

Затем снова клонируйте и убедитесь, что нет различий.
Это обеспечит отсутствие "автоматического" преобразования eol.

Тогда вы можетедобавить директивы .gitattributes eol ( пример здесь )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...