Я могу подтвердить, что это связано с GIT.
Вы можете установить git config --global core.autocrlf input
для преобразования всех CRLF в LF при фиксации.
Это означает, что Git обработает все текстовые файлы и заменит CRLF на LF при записи этого файла в базу данных объектов. Однако он не сделает обратного. Когда вы читаете файлы обратно из базы данных объектов и записываете их в рабочий каталог, они по-прежнему будут иметь LF для обозначения конца строки. Этот параметр обычно используется в Unix/Linux/OS X для предотвращения записи CRLF в репозиторий. Идея заключалась в том, что если вы вставите код из веб-браузера и случайно получите CRLF в один из ваших файлов, Git позаботится о том, чтобы они были заменены на LF, когда вы записываете в базу данных объектов.
Существует также настройка для каждого репозитория, где вы можете объявлять окончания строк для определенных файлов. Поэтому в вашем репозитории должен быть создан файл .gitattributes
. Некоторые примеры см. на странице https://help.github.com/articles/dealing-with-line-endings/#per-repository-settings. Преимущество настройки для каждого репозитория заключается в том, что каждый пользователь, который извлекает данные из вашего репозитория, имеет одинаковые настройки окончания строки.
Поскольку любой хороший редактор Windows должен поддерживать как CRLF, так и LF, я не вижу проблем с использованием только LF.
Разница между dist и source
Запустите composer show laravel/laravel
и вы увидите
source : [git] https://github.com/laravel/laravel.git 4afcd8c278febbe6840dbf8bbb46514818abce59
dist : [zip] https://api.github.com/repos/laravel/laravel/zipball/4afcd8c278febbe6840dbf8bbb46514818abce59 4afcd8c278febbe6840dbf8bbb46514818abce59
Опция композитора --prefer-dist
представляет собой zip-архив без контроля версий. В основном это более быстрый способ, чем source
, и используется по умолчанию для стабильных версий.
Если используется --prefer-source
, композитор будет клонировать из репозитория git. Поскольку вы не используете стабильную версию, source
используется, если вы опускаете --prefer-dist
.
Почему расстояние равно LF
Zip-архив скачивается и распаковывается. Никакие действия git не выполняются, перевод строки получается, как указано в репозитории/zip.
Почему источник CRLF
Репозиторий git клонирован и извлечен из github. В репозитории laravel есть файл .gitattributes
, содержащий
* text=auto
- Примечание.
.gitattributes
имеет более высокий приоритет, чем git config.
* text=auto
заставит Git обрабатывать файлы как он считает нужным. Теперь вы находитесь в Windows, и Git считает, что лучше всего изменить его на CRLF, поскольку я думаю, что это значение по умолчанию для Windows.
person
Pᴇʜ
schedule
08.01.2015