Поведение в конце строки и Git - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в Git. Я использовал GitHub немного раньше, но совсем недавно я начал использовать Git локально в своей системе для контроля версий.

Я в системе Windows. Тем не менее, я работаю с некоторыми файлами, изначально созданными на Ma c. Таким образом, всякий раз, когда я создаю файлы, я получаю следующее предупреждение:

предупреждение: LF будет заменен на CRLF в контакте. html. Файл будет иметь исходные окончания строк в вашем рабочем каталоге

Теперь, каждый предыдущий вопрос, который я нашел по этой теме c, по сути, просто группа людей, объясняющих цель установки (core.autocrlf = правда) снова и снова. Справочные страницы совершенно ясны: в системе Windows значение 'true' должно приводить к CRLF в рабочем каталоге, но все коммиты будут преобразованы в LF в репо. Я понял.

1) Почему это сообщение так ужасно сформулировано. Звучит задом наперед. Исходные окончания строки (по крайней мере, изначально) были LF. Это не должно быть в моем рабочем каталоге. Звучит так, как будто он уверяет меня, что он останется LF в рабочем каталоге, но будет CRLF в репо. Противоположность того, что я хочу.

2) Предполагая, что 'core.autocrlf = true' дает мне поведение, которое я хочу (LF в репо ---- CRLF в рабочей копии). Как отключить это ужасно запутанное сообщение, чтобы я не видел его каждый раз, когда добавляю «git add»? Это создает много визуальных помех, если я работаю над несколькими файлами.

1 Ответ

3 голосов
/ 30 апреля 2020

Это сообщение означает, что в вашем рабочем дереве есть файлы с окончанием LF. Это имеет смысл, поскольку они были созданы на Ma c, и все современные версии macOS используют LF-окончания. Однако, если вы зафиксируете их, а затем проверите их, у вас получится конец строки CRLF, так как вы находитесь на Windows и у вас установлена ​​core.autocrlf. Вот что значит сообщение. Концы LF в вашем рабочем дереве будут заменены в следующий раз при извлечении файла по любой причине.

Идея, по крайней мере в принципе, состоит в том, чтобы предупредить вас, что окончания строк не будут сохранены в случае это важно для вас. Возможно, вы работаете со сценарием оболочки, и даже на Windows оболочке требуются окончания LF. Поэтому вы хотите добавить запись в .gitattributes.

. Это также помогает предупредить вас, если вы делаете что-то с двоичным файлом, где преобразование конца строки может привести к повреждению. В конце концов, ваше причудливое изображение JPEG также не будет работать, если вы измените все его байты 0x0a и 0x0d.

Вы можете отключить это предупреждение, если хотите, установив core.safecrlf в false.

...