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