попередження: LF буде замінено CRLF.
Залежно від редактора, який ви використовуєте, текстовий файл з LF не потрібно буде зберігати за допомогою CRLF: останні редактори можуть зберігати стиль eol. Але ця настройка git config наполягає на зміні цих ...
Просто переконайтесь, що (як я рекомендую тут ):
git config --global core.autocrlf false
Таким чином, ви уникаєте будь-якого автоматичного перетворення і можете все-таки вказати їх через .gitattributesфайл та core.eolдирективи .
windows git "LF буде замінено CRLF"
Це попереджуючий хвіст назад?
Ні: ви в Windows, і на git configдовідковій сторінці згадується
Використовуйте це налаштування, якщо ви хочете мати CRLFу своєму робочому каталозі закінчення рядків, навіть якщо сховище не має нормалізованих закінчень рядків.
Як описано у " заміні git заміною LF на CRLF ", це має відбуватися лише під час оформлення замовлення (не фіксація), на core.autocrlf=true.
repo
/ \
crlf->lf lf->crlf
/ \
Як уже згадувалося в Сяопіна «s відповідь , що попередження є такий же , як:
попередження: (Якщо ви перевірите це / або клонуєте до іншої папки з вашою поточною core.autocrlfконфігурацією,) LF буде замінено CRLF
Файл матиме свої оригінальні закінчення рядка у вашому (поточному) робочому каталозі.
Як згадується у git-for-windows/gitвипуску 1242 :
Я все ще вважаю, що це повідомлення є заплутаним, повідомлення може бути розширене, щоб включити краще пояснення проблеми, наприклад: "LF буде замінено CRLF file.jsonпісля видалення файлу та повторної перевірки".
Примітка: Git 2.19 (вересень 2018 року), коли використовується core.autocrlf, фіктивне попередження "LF буде замінено CRLF" тепер придушується .
Як quaylar справедливо зауваження , якщо є перетворення на фіксацію, вона є LFтільки.
Це конкретне попередження " LF will be replaced by CRLF" надходить від convert.c # check_safe_crlf () :
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
Він називається convert.c#crlf_to_git(), сам покликаний convert.c#convert_to_git(), сам покликаний convert.c#renormalize_buffer().
І це останнє renormalize_buffer()лише називається merge-recursive.c#blob_unchanged().
Тому я підозрюю, що ця конверсія відбувається git commitлише в тому випадку, якщо згадана фіксація є частиною процесу злиття.
Примітка: з Git 2.17 (Q2 2018) очищення коду додає певне пояснення.
Див. Комітет 8462ff4 (13 січня 2018 р.) Торстена Бьогерсгаузена ( tboegi) .
(Об’єднано Хуніо С Хамано - gitster- у комітеті 9bc89b1 , 13 лютого 2018 р.)
convert_to_git (): safe_crlf / checksafe стає int conv_flags
Коли Ви телефонуєте convert_to_git(), то checksafeпараметр визначається , що має статися , якщо перетворення EOL ( CRLF --> LF --> CRLF) НЕ в обидві сторони чисто.
Крім того, він також визначив, чи слід закінчення рядків перенормувати ( CRLF --> LF) чи зберегти такими, якими вони є.
checksafe був safe_crlfперерахунком із цими значеннями:
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
Зауважте, що регресія, запроваджена в 8462ff4 (" convert_to_git():
safe_crlf/checksafeстає int conv_flags", 2018-01-13, Git 2.17.0) ще в циклі Git 2.17, змусила autocrlfпереписувачів видавати попереджувальне повідомлення,
незважаючи на налаштуванняsafecrlf=false .
Див. Комісію 6cb0912 (04 червня 2018 р.) Від Anthony Sottile ( asottile) .
(Об'єднано Хуніо С Хамано - gitster- у комітеті 8063ff9 , 28 червня 2018 р.)