Как найти разделители строк crlf с помощью git?

поскольку я хочу зафиксировать git с помощью intellij, я получаю сообщение

You are about to commit CRLF line separators to the Git repository

и мне дают 2 варианта:

  • исправить и совершить (запускает git config --global core.autocrlf)
  • commit как есть

Я хотел бы видеть, где эти разделители строк, прежде чем я сделаю что-нибудь еще.

Как я могу сделать это с помощью git или intellij? (предпочтительными являются решения, использующие только git).

Ответы

Ответ 1

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

Используя git bash, вы можете найти все файлы, содержащие символ \r, с помощью следующей команды (bash only!):

git grep -Il $'\r'

Или альтернативно (который должен работать для всех типов оболочек - кроме оконных):

git grep -Il '<CTRL + M>'

Это будет отображаться как новая строка в вашей оболочке, но пока вы завернете ее в кавычки, она будет работать.

И, наконец, для CLI Windows (протестирован с CMD и PowerShell):

git grep -Il "\r"

Используемые параметры

  • -I исключает двоичные файлы из соответствия
  • -l отображаются только имена файлов со спичками, а не все совпадения

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

Вы можете прочитать документацию для получения дополнительной информации.