Влияет ли использование EditorConfig на то, как мне настроить Git для окончаний строк?

Здесь много вопросов об обработке окончаний строк в Git. Тем не менее, один вопрос, который я не рассмотрел, состоит в том, имеет ли использование EditorConfig какое-либо влияние на то, как Git должен обращаться с окончаниями строк.

Я спрашиваю, потому что практически все проекты, над которыми я работаю, имеют .editorconfig это устанавливает end_of_line в lf, Это нормально для меня, но стандартный совет для настройки обработки конца строки в Git - установить autocrlf в true (т.е. преобразовать в CRLF при проверке).

В этой ситуации Editorconfig и Git, кажется, тянут в противоположных направлениях (Git преобразует окончания строк в CRLF при оформлении заказа, но затем Editorconfig, вероятно, преобразует их обратно в LF при каждом сохранении файла). Поэтому мне интересно, отличает ли использование Editorconfig лучшие практики с окончаниями строк в Windows?

Замечания:

Я склонен отложить до Editorconfig и добавить .gitattributes файл, содержащий * -text (т.е. сказать Git не трогать окончания строки, независимо от autocrlf настройки) для каждого проекта, который имеет .editorconfig файл, который определяет окончание строк для проекта (я точно знаю, что каждый, кто работает над этими проектами, использует Editorconfig и / или использует ОС, которая использует lf окончания, и это, кажется, позволяет избежать раздражающих предупреждений о конце строки, которые Git часто выдает в Windows). Проблема в том, что, несмотря на большое чтение этой темы, окончания строк в Git продолжают сбивать меня с толку, поэтому я не уверен, что вышеприведенное не вызовет новых проблем (предыдущий эксперимент с .gitattributes в конечном итоге разбить файлы изображений). Итак: имеет ли это смысл в качестве подхода? Или Editorconfig не имеет отношения к лучшей практике обработки конца строки?

2 ответа

Задавать autocrlf в false,

Хотя в прошлом инструменты управления исходным кодом были полезны для обработки концов строк, на самом деле это проблема редактора, и она была решена с помощью EditorConfig.

рассматривается вопрос о том, имеет ли использование EditorConfig какие-либо последствия для того, как Git должен иметь дело с окончаниями строк.

Это не должно иметь никакого влияния на git, так как git проверяет значения конфигурации, когда вы создаете контент и когда вы его фиксируете.

Git будет извлекать и фиксировать контент определенным образом.
Единственный способ, которым этот инструмент может повлиять на ваш код, - это обновить содержимое рабочего каталога с помощью определенного CRLF на основе предоставленной вами конфигурации.

Проблема в том, что, несмотря на большое чтение этой темы, окончания строк в Git продолжают сбивать меня с толку, поэтому я не уверен, что вышесказанное не вызовет новых проблем.

Вы не единственный, кому трудно понять, как работает git CRLF. В вашем случае я не вижу причин для беспокойства по поводу вашего вопроса:

Поэтому мне интересно, отличает ли использование Editorconfig лучшие практики с окончаниями строк в Windows?

Я бы определил всю свою конфигурацию в .gitconfig/.gitattributes и опустить CRLF от обработки вне git.

Другие вопросы по тегам