Линия Гендлинга заканчивается в GIT - PullRequest
0 голосов
/ 09 июня 2018

Допустим, у нас есть команда из 10 разработчиков.Половина из них использует Windows, а половина Linux.Все они работают вместе над проектом, разделяя работу с помощью GIT.Проблема с CRLF / LF начинается ...

Пример: Один разработчик с Window работает над тем же, что и разработчик, использующий Linux.Им обоим нужно просматривать / редактировать одни и те же файлы.

Будут ли проблемы с CRLF и LF?Как GIT справится с этой проблемой?(принудительно Linux не решение)

1 Ответ

0 голосов
/ 09 июня 2018

Вы можете увидеть больше с недавней статьей " Git для Windows: Концы строк " от Эдвард Томсон (экс-GitHubber, теперь Microsoft, сейчас... снова ошибиться в GitHubber)

Ключом к работе с окончаниями строк является , чтобы убедиться, что ваша конфигурация зафиксирована в хранилище, используя .gitattributes.Для большинства людей это так же просто, как создание файла с именем .gitattributes в корне хранилища, который содержит одну строку:

* text=auto

С этим набором пользователи Windows получаттекстовые файлы, преобразованные из концов строк в стиле Windows (\ r \ n) в окончания строк в стиле Unix (\ n) при их добавлении в хранилище.

Почему бы не core.autocrlf?

Первоначально Git для Windows представил другой подход к окончанию строк, который вы, возможно, видели: core.autocrlf.Это аналогичный подход к механизму атрибутов: идея заключается в том, что пользователь Windows установит параметр конфигурации Git core.autocrlf=true, и их окончания строк будут преобразованы в окончания строк в стиле Unix при добавлении файлов в хранилище.

Разница между этими двумя вариантами тонкая, но критическая: в хранилище установлен .gitattributes, поэтому он доступен всем.Но core.autocrlf устанавливается в локальной конфигурации Git.Это означает, что каждый должен помнить, чтобы установить его и установить его одинаково.

Я бы добавил, что core.autocrlf относится к всем файлам, включая двоичные, тогда как .gitattribureДиректива core.eol может быть установлена ​​для определенных файлов (например, *.cpp)

Я всегда рекомендовал .gitattributes подход .

...