Как исправить окончания строк в проверенных файлах после изменения настройки autoclrf для репозитория git?

Я клонировал репозиторий git в Windows и заметил, что окончания строк установлены в стиле UNIX (LF).

Чтобы это исправить, я изменил значение autocrlf репозитория на true (core.autocrlf=true).

Тем не менее, все мои файлы проверки на диске по-прежнему имеют возврат строки в стиле UNIX (LF). Как я могу их исправить?


person Dan Rigby    schedule 12.04.2012    source источник


Ответы (1)


ВНИМАНИЕ: выполнение приведенных ниже команд приведет к потере всех незафиксированных изменений.

Чтобы исправить окончания строк в извлеченных файлах, вам нужно будет выполнить две команды:

  1. git rm --cached -r . Это удаляет все из индекса git.
  2. git reset --hard HEAD Это сбрасывает все локальные изменения.

Если у вас есть ожидающие изменения, задача становится намного сложнее.

Вы можете использовать команду dos2unix, которая входит в состав msysgit, чтобы попытаться исправить и строки, оканчивающиеся на файлы, которые вы пытаетесь зафиксировать.

После того, как вам удалось зафиксировать любые изменения, которые необходимо сохранить, вы можете использовать две вышеупомянутые команды, чтобы сбросить окончания строк для всех файлов в репозитории.

person Dan Rigby    schedule 12.04.2012
comment
Предупреждение: команда dos2unix, которая поставляется вместе с msysgit (начиная с версии 1.4.8), имеет нестандартное (IMO опасное и идиотское) поведение: она не принудительно переводит строки UNIX, а вместо этого переключает DOS ‹- › ЮНИКС. Чтобы принудительно использовать UNIX, вы должны использовать (нестандартную) опцию --d2u. - person leonbloy; 11.12.2013