Как я вынуждаю мерзавца использовать LF вместо CR+LF под окнами?

Я хочу вынудить мерзавца в файлы контроля в соответствии с Windows, использующим просто LF нет CR+LF. Я проверил эти два параметра конфигурации, но я не смог найти правильную комбинацию настроек.

Я хочу, чтобы это преобразовало все файлы в LF и сохраните LF на файлах.

Комментарий: Я использовал autocrlf = input но это просто восстанавливает файлы, когда Вы фиксируете их. Я хочу вынудить это получить их использование LF.

Вероятно, я не был так ясен: репозиторий уже использует LF но файлы проверили использование msysgit, используют CR+LF и я хочу вынудить msysgit получить их с LF: принуждение окончаний строки Unix.

>git config --list | grep crlf
core.autocrlf=input
302
задан rogerdpack 16 January 2014 в 12:58
поделиться

2 ответа

OP добавил в свой вопрос:

файлы, извлеченные с помощью msysgit, используют CR + LF , и я хочу подделать msysgit, чтобы получить их с LF

Первым простым шагом все равно будет файл .gitattributes :

*.txt -crlf

, чтобы избежать преобразования crlf для файлов с правильным eol.
И я всегда рекомендовал git config --global core.autocrlf false , чтобы отключить любое преобразование (что применимо ко всем файлам с версиями)

См. Рекомендации по кроссплатформенной конфигурации git?


Но второй более мощный шаг включает в себя драйвер фильтра gitattribute и добавление шага размазывания

filter driver

всякий раз, когда вы обновляете свое рабочее дерево , сценарий может только для файлов, указанных вами в .gitattributes , принудительно установить LF eol и любые другие параметры форматирования, которые вы хотите принудительно применить.
Если сценарий « clear » ничего не делает, вы (после фиксации) преобразовали ваши файлы, применив именно тот формат, который вам нужен.

88
ответ дан 23 November 2019 в 01:25
поделиться

core.autocrlf = input - правильная настройка для того, что вы хотите, но вам, возможно, придется выполнить git update-index --refresh и / или git reset - -hard , чтобы изменение вступило в силу.

Если core.autocrlf установлен на input , git не будет применять преобразование новой строки при извлечении (поэтому, если у вас есть LF в репо, вы получите LF) , но он позаботится о том, чтобы в случае, если вы что-то напутаете и каким-то образом добавите CRLF в рабочую копию, они не попадут в репозиторий.

26
ответ дан 23 November 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: