CRLF would be replaced by LF


添加了一下之前在其他系统使用的文件时候出现了以下错误:

➜  laravel5.2 git:(master) ✗ git add .
fatal: CRLF would be replaced by LF in public/assets/css/ace-fonts.css.

百度说法

由于Unix 和 Windows 下对换行符的解释不同。因为win下文件回车换行是以CRLF结尾,而用VIM编辑器新建的文件是以LF结尾,导致出现了此问题。

百度解决方法:在config添加

autocrlf = false

或者

#备注可以使用--global 也可以不实用,影响不大
git config --global core.autocrlf true #这个是转换,也是默认值
git config --global core.autocrlf input #貌似是上库转换,从库中迁出代码不转换
git config --global core.autocrlf false  #这个一般是window上的,不转换

以上都未能真正解决问题,以下才是解决的方法。

使用 dos2unix 对文件进行格式转换

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。
DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。
而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。
DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件。
而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。
因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。

mac 安装 dos2unix

➜  laravel5.2 git:(master) ✗ brew install dos2unix

ubunt 安装 dos2unix

sudo apt-get install dos2unix

进行格式转换

➜  project find  laravel5.2/public/assets -type f -exec dos2unix {} +

git add ... ok ... end!!!

results matching ""

    No results matching ""