Я создал пример проекта laravel, используя 2 разные команды (в Windows 8):
composer create-project laravel/laravel l5linefeed dev-develop --prefer-dist
а также
composer create-project laravel/laravel l5linefeed2 dev-develop
Речь идет о разделителях строк: в первом случае файлы имеют окончания строк в Unix (LF), а во втором случае файлы имеют окончания строк в Windows (CRLF).
Вопросы:
Это почему? Это имеет что-то общее с GIT? Я хотел бы иметь в файлах оригинальные разделители (такие же, как в packagist), а не модифицированные
Если это имеет что-то общее с Fit, когда я запускаю команду GIT в cmd, я получаю:
git config --global -l
user.name=xxx
user.email=xxx@xxx
core.autocrlf=false
таким образом, CLRF не установлен в true, так почему окончания строк являются CRLF?
Я могу подтвердить, что это связано с 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. Преимущество настройки для каждого репозитория состоит в том, что у каждого пользователя, который извлекает из вашего репозитория, одинаковые настройки окончания строки.
Поскольку любой хороший редактор окон должен поддерживать как CRLF, так и LF, я не вижу проблем с использованием только LF.
Бежать 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
,
Zip-архив загружен и распакован. Никакие действия мерзавца не выполняются, перевод строки получен как предоставлено в репо / почтовом индексе.
Репозиторий git клонирован и извлечен из github.
Хранилище Laravel имеет .gitattributes
файл, содержащий
* text=auto
.gitattributes
имеет более высокий приоритет, чем git config* text=auto
заставит Git обрабатывать файлы любым способом, который он считает лучшим. Теперь вы работаете в Windows, и Git считает, что лучше всего поменять его на CRLF, так как я думаю, что это значение по умолчанию для Windows.
Других решений пока нет …