LINUX.ORG.RU

[Git][CRLF и LF] Объясните на пальцах

 


1

1

Только начинаю изучать git и никак не могу разобраться, как git работает с переносами строк(CRLF и LF).
Вот здесь советуют настройки: core.autocrlf input и core.safecrlf true. У меня сейчас есть каталог с кучей виндовых файлов и git ругается, мол:

fatal: CRLF would be replaced by LF in buy.php.

Сконвертить я могу, но как в git происходит дальнейшее взаимодействие разработчиков на разных платформах? Спасёт ли отключение проверки конца строк(core.autocrlf false)?
Вот эта статья, как-то ещё больше меня запутала.


если у тебя unix, будь добр юзать юникосвые окончания. либо поставь aurocrlf в true на время первого коммита, а не input.

А об остальном гит сам позаботится.

Adjkru ★★★★★
()
Ответ на: комментарий от Adjkru

В каталоге оказались вперемешку файлы с разным окончанием строк, из-за чего всё та-же ругань git. В любом случае надо конвертить файлы или есть возможность решить проблему средствами git?

seonix
() автор топика
Ответ на: комментарий от seonix

Не совсем понял суть вопроса?

В приведенной вами статье описывается, как средствами git конвертировать переводы строк к единому виду.

German_B
()
Ответ на: комментарий от German_B

Из статьи:

Git предупреждает о том, что переводы строк в файле lf.txt будут заменены на \r\n. Нам отступать некуда, поэтому все-таки выполняем коммит:
...
Git еще раз выведет то же самое предупреждение, но коммит сделает:

Вот у меня ругается, но коммит не даёт сделать. А так как у меня файлы в перемешку, то при core.autocrlf input и core.autocrlf true - одна и та-же проблема.

bash$: git add .
fatal: CRLF would be replaced by LF in buy.php.
bash:$ git commit -m "commit"
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	buy.php
#	cart.php
#	cat.php
#	config.php
#	index.php
#	order.php
#	page.php
#	pages/
#	product.php
#	products/
#	remove.php
#	status.php
#	theme/
#	update.php
#	upgrade.php
#	util.php
#	version.txt
#	vlib/
#	yml.php
nothing added to commit but untracked files present (use "git add" to track)
Собственно, я уже всё сконвертил в данном каталоге, просто хотел по-более понять принцип работы, чтоб не было проблем в будущем.

seonix
() автор топика
Ответ на: комментарий от seonix

core.safecrlf true - эта опция нуна, чтобы предотваратить автозамену lf<->crlf. Такое бывает полезно, если у вас какие-то специфические бинарники, очень похожие на текстовые файлы.

core.safecrlf warn - позволяет проводить автозамену, но с руганью в консоле в виде варнингов.

У меня используется core.autocrlf true, core.eol native(по умолчанию) , core.safecrlf false(по умолчанию)

German_B
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.