Вопрос по git – Как изменить настройки окончания строки

397

Есть ли файл или меню, которые позволят мне изменить настройки работы с окончаниями строк?

Есть 3 варианта:

Checkout Windows-style, commit Unix-style

Git will convert LF to CRLF when checking out text files. When committing text files, CRLF will be converted to LF. For cross-platform projects, this is the recommended setting on Windows ("core.autocrlf" is set to "true")

Checkout as-is, commit Unix-style

Git will not perform any conversion when checking out text files. When committing text files, CRLF will be converted to LF. For cross-platform projects this is the recommended setting on Unix ("core.autocrlf" is set to "input").

Checkout as-is, commit as-is

Git will not perform any conversions when checking out or committing text files. Choosing this option is not recommended for cross-platform projects ("core.autocrlf" is set to "false")

возможный дубликатHow do I force git to use LF instead of CR+LF under windows? Alastair Irvine
Какой из них по умолчанию? Stephen
Неважно, похоже, что по умолчанию это правда, что я думаю, уместно. Stephen
@Stephen по умолчанию - false,check وليد تاج الدين
Я на самом деле считаю, что 3-й вариант работает лучше. В противном случае я часто сталкиваюсь с ситуациями, когда я редактирую как пакетные, так и sh-скрипты на одной платформе (Windows / Linux), а затем фиксирую их и Git автоматически & quot; исправляет & quot; окончание строк для одной платформы ... Нет, я предпочитаю не обращать внимания на окончание строк и фиксировать / проверять их в точности так, как они есть. JustAMartin

Ваш Ответ

4   ответа
105

Windows: CR (Carriage Return \r) and LF (LineFeed \n) pair OSX,Linux: LF (LineFeed \n)

Мы можем настроить git для автоматического исправления форматов окончания строки для каждой ОС двумя способами.

Git Global configuration Use .gitattributes file Global Configuration In Linux/OSX
git config --global core.autocrlf input

Это исправит любойCRLF вLF когда вы делаете

In Windows
git config --global core.autocrlf true

Это убедитесь, что при оформлении заказа в Windows всеLF преобразуется вCRLF

.gitattributes File

Это хорошая идея, чтобы сохранить.gitattributes файл, поскольку мы не хотим ожидать, что все в нашей команде установят свои конфигурации. Этот файл должен храниться в корневом каталоге репозитория, и, если он существует, git будет его уважать.

* text=auto

Это будет рассматривать все файлы как текстовые файлы и преобразовывать в строку ОС, заканчивающуюся при оформлении заказа, и обратно вLF при фиксации автоматически. Если хотел сказать явно, то используй

* text eol=crlf
* text eol=lf

Первый предназначен для проверки, а второй - для фиксации.

*.jpg binary

Лечи всех.jpg изображения в виде двоичных файлов. Так что конверсия не нужна

Error: User Rate Limit ExceededCRError: User Rate Limit ExceededLF.
Error: User Rate Limit Exceeded* text eol=lfError: User Rate Limit ExceededLFError: User Rate Limit Exceeded
Error: User Rate Limit ExceededCRError: User Rate Limit Exceeded
3

которые были изменены в формат UNIX из формата ПК.

(1) Вам необходимо переустановить GIT с черепахой и в разделе «Концовка строк». В разделе убедитесь, что вы выбрали & quot; Получить как есть - Проверить как есть & quot;

(2) и сохранить оставшиеся конфигурации как есть.

(3) после завершения установки

(4) записать все расширения файлов, которые конвертированы в формат UNIX, в текстовый файл (extensions.txt).

ex:*.dsp
   *.dsw

(5) скопируйте файл в свой клон Запустите следующую команду в GITBASH

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt
371

git config

Например

git config --global core.autocrlf true

Для получения подробной информации прокрутите вниз вэта ссылка на Pro Git в раздел с именем «core.autocrlf»

Если вы хотите знать, чтоfile это сохраняется в, вы можете запустить команду:

git config --global --edit

и глобальный конфигурационный файл git должен открыться в текстовом редакторе, и вы можете увидеть, откуда этот файл был загружен.

trueError: User Rate Limit ExceededfalseError: User Rate Limit Exceeded qwertymk
inputError: User Rate Limit Exceededtrue | false | input
Error: User Rate Limit Exceededstackoverflow.com/questions/3206843/…
Error: User Rate Limit Exceededformatting and whitespace configuration section.
Error: User Rate Limit Exceeded"1 ... ("core.autocrlf" is set to "true") ... 2 ... ("core.autocrlf" is set to "input") ... 3 ... ("core.autocrlf" is set to "false")"Error: User Rate Limit Exceeded
25

that can be redistributed to all developers, check out the text attribute in the .gitattributes file. This way, developers dont have to manually set their own line endings on the repository, and because different repositories can have different line ending styles, global core.autocrlf is not the best, at least in my opinion.

Например, сброс этого атрибута по заданному пути [. - текст] заставит git не касаться концов строк при регистрации и выписке. На мой взгляд, это лучшее поведение, так как большинство современных текстовых редакторов могут обрабатывать оба типа окончаний строк. Кроме того, если вы, как разработчик, все еще хотите выполнять преобразование конца строки при регистрации, вы все равно можете установить путь для соответствия определенным файлам или установить атрибут eol (в .gitattributes) в своем хранилище.

Также проверьте этот связанный пост, который описывает файл .gitattributes и текстовый атрибут более подробно:Какова лучшая стратегия обработки CRLF (возврат каретки, перевод строки) с Git?

Похожие вопросы