Есть ли способ определить окончания строк в существующем репозитории 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:
- Установите
core.autocrlf
на false
, поэтому при передаче файлов он не будет изменять окончание файла. -
git clone
ваше репо для ex. в новом каталоге. - Используйте текстовый редактор, который показывает окончания строк, чтобы открыть файлы (например, 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.