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

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

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

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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

Лучшая практика окончания строк находится здесь: fooobar.com/questions/9563/...

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

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

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

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

Ответ 4

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

git config --list

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

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

git config --get core.autocrlf

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

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

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