Почему GitHub считает, что мой код имеет различия?

Когда я добавлю...

# Auto detect text files and perform LF normalization
* text=auto

... в мой конфигурационный файл приложение / клиент GitHub сообщает, что многие (если не все?) файлы в хранилище изменились. Для многих из них говорится, что весь файл изменился, хотя, очевидно, не изменился. Очевидно, что это проблема с окончаниями строк, но я не понимаю, почему это так радует.

Кажется, что как только вы говорите Git (через файл конфигурации), что тип файла - текстовый, он выбрасывает различия.

1 ответ

Решение

С text=auto Git хочет хранить файлы в формате LF - он не просто применяет фильтр к тому, что там есть. В результате любой файл, который еще не сохранен с окончаниями LF, будет отображаться как измененный. Вы, вероятно, хотите последовать совету gitattributes man страницу в разделе конвертации eol и сделайте:

$ rm .git/index     # Remove the index to force Git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"
Другие вопросы по тегам