我可以确认这与 GIT 有关。
您可以设置git config --global core.autocrlf input 以在提交时将所有CRLF 转换为LF。
这意味着 Git 将处理所有文本文件,并确保在将该文件写入对象数据库时将 CRLF 替换为 LF。但是,它不会反过来。当您从对象数据库中读回文件并将它们写入工作目录时,它们仍然会有 LF 来表示行尾。此设置通常在 Unix/Linux/OS X 上使用,以防止 CRLF 被写入存储库。这个想法是,如果您从 Web 浏览器粘贴代码并且不小心将 CRLF 放入您的某个文件中,Git 会确保在您写入对象数据库时将它们替换为 LF。
还有一个 per-repository 设置,您可以在其中声明特定文件的行尾。因此,必须在您的存储库中创建一个 .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
composer 选项--prefer-dist 是一个非版本控制的压缩包。大多数情况下,这是比source 更快的方法,并且默认用于稳定版本。
如果使用--prefer-source,composer 将从 git 存储库中克隆。因为你不是一个稳定的版本,如果你省略--prefer-dist,就会使用source。
为什么dist是LF
zip 存档已下载并解压缩。没有执行任何 git 操作,获取的是 repo/zip 中提供的换行符。
为什么来源是 CRLF
从 github 克隆并签出 git 存储库。
laravel 仓库有一个 .gitattributes 文件,其中包含
* text=auto
- 注意:
.gitattributes 的优先级高于 git config
* text=auto 将使 Git以它认为最好的方式处理文件。现在您在 Windows 上,Git 认为最好将其更改为 CRLF,因为我认为这是 Windows 的默认设置。