git: всегда принудительно windows конец строки для репо - PullRequest
1 голос
/ 01 апреля 2020

Я хочу, чтобы в моем репо всегда использовались окончания строки windows, независимо от среды пользователя или настройки core.autocrlf. Я читал об использовании .gitattributes для установки концов строк, но не смог заставить это работать. Мой .gitattributes файл выглядит так:

* text=auto
* text eol=crlf

После добавления этого файла я запускаю git add --renormalize . и git add .gitattributes, а затем pu sh на удаленном компьютере. Однако это не отменяет мою глобальную настройку core.autocrlf. То, что я хочу, это pu sh мои windows окончания строки в Bitbucket, но я получаю linux окончания строки в Bitbucket.

Как я могу заставить моего git клиента перевести в pu sh Windows окончания строк для указанного репо c, независимо от настроек пользователя для core.autocrlf?

1 Ответ

2 голосов
/ 02 апреля 2020

Во-первых, у вас есть две конфликтующие настройки. * text=auto и * text eol=crlf не совместимы. Вам нужно выбрать один.

Однако я сожалею, что ни один из них не будет делать то, что вы хотите. Git не имеет опции "всегда конвертировать в CR / LF в хранилище". Ваши единственные опции управляют тем, что входит в рабочий каталог.

Например, * text eol=crlf поместит окончания строки Windows в стиле в рабочий каталог , но установит стиль Unix строка в хранилище.

Вы можете полностью отключить настройку окончания строки, используя * -text, но это просто прекратит преобразование текста и зарегистрирует файл буквально, поскольку он существует на диске. Это не исключает возможность того, что пользователь Unix переписывает файл с Unix окончаниями строк в стиле.

Я бы посоветовал вам игнорировать содержимое файла, который существует в хранилище, и сосредоточиться на том, что вы хотите в рабочих каталогах вместо этого. Если вы всегда хотите CR / LF на диске, используйте * text eol=crlf.

...