Есть ли способ определить окончание строки в существующем git-репо?

Есть ли способ определить окончания строк в существующем git-репозитории?

Если я клонирую существующий репозиторий, как мне определить, какой файл core.autocrlf использовался создателем?

Я все еще сомневаюсь, что является лучшим параметром для core.autocrlf, например, в окне Windows (поскольку существует несколько мнений: распространение конфигурации git с помощью кода или https://help.github.com/articles/dealing-with-line-endings)

Дополнительный вопрос: Можете ли вы определить в Windows (со стандартными инструментами), имеет ли репо смешанные окончания строк (по неправильной настройке core.autocrlf) через все коммиты?

3 ответа

Чтобы проверить, какие окончания строк были на самом деле зафиксированы в хранилище (независимо от вашего core.autocrlf настройка), попробуйте следующее:

git grep -I --files-with-matches --perl-regexp '\r' HEAD

(-I означает, что двоичные файлы не должны просматриваться.)

Я бы все равно сохранил эту настройку (core.autocrlf) чтобы false, как я объясняю в разделе " Распространение конфигурации git с помощью кода ", который вы упоминаете, и использует eol Директива gitattributes для более детального контроля.

При этом, чтобы обнаружить смешанные окончания строки:

  • задавать core.autocrlf в true
  • git clone ваш репо
  • git diff: если различия видны сразу после вашего клона... некоторые автоматические преобразования eol только что произошли в рабочем дереве.

Обновление 2016 (4 года спустя): более современный способ обнаружения изменений eol:

 git -c color.diff.whitespace="red reverse" diff -R -- afile

Лучшая практика окончания строк здесь: /questions/37611792/kakova-luchshaya-strategiya-obrabotki-crlf-vozvrat-karetki-perevod-stroki-s-git/37611804#37611804

Чтобы определить окончания строк в существующем git-репозитории:

  1. Задавать core.autocrlf в false, поэтому он не изменит окончания файлов при передаче файлов.
  2. git clone Ваш репо для экс. в новом каталоге.
  3. Используйте текстовый редактор, который показывает окончания строк, чтобы открыть файлы (например, PHPStorm делает). Вы должны открыть несколько файлов, так как окончания строк могут отличаться от файла к файлу.

Вы не можете определить, какой файл core.autocrlf использовался создателем, поскольку он является локальной конфигурацией, за исключением того, что в репозитории есть файл.gitattributes.

В Windows, если вы не используете.gitattributes, просто используйте core.autocrlf true, как установлено по умолчанию.

В Windows просто запустите следующую команду из командной строки:

git config --list

Это перечислит все переменные конфигурации git.

Если вы хотите получить индивидуальные настройки конфигурации (например, для core.autocrlf), выполните следующую команду в командной строке Windows:

git config --get core.autocrlf

Это либо даст вам "true" ИЛИ "false" ценность.

ЕСЛИ вы хотите изменить это, отредактируйте C:\ProgramData\Git\config файл и измените значение с false к true

Примечание. Это применимо только для операционных систем Windows.

Другие вопросы по тегам