CRLF will be replaced by LF

背景

今天在git上传一个朋友给的项目文件时,使用git add 命令后出现一下警告⚠️,
warning: CRLF will be replaced by LF in xxx/Pods/xxx/.../abc.xml

字面意思理解:文件里的CRLF 将被转换成LF,那么什么是CRLF,LF呢?

原因

CRLF, LF 是用来表示文本换行的方式。
CR:Carriage Return 代表回车,对应字符 '\r';
LF:Line Feed 代表换行,对应字符 '\n'。
Windows 系统使用的是 CRLF作为其文本的换行符, Unix系统(包括Linux, MacOS近些年的版本) 使用的是LF作为其文本的换行符。

那么就好理解了,一定是朋友创建的配置文件是在windows环境下,所以使用的CRLF作为换行符,当我在unix系统下使用git管理文件时,检查到差异,所以出现了如上警告。

解决办法

git提供了core.autocrlf 配置来解决这个问题。

  1. 查看当前配置: git config --global core.autocrlf
  2. 设置命令:git config --global core.autocrlf true | false | input
  3. 命令解释
    input :会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
    true :会在git上传文件到仓库时自动转换CRLF为LF,并在windows系统签出时转换为CRLF。
    false : 保持原文件换行符不变。
    注:git 安装后默认为 false。

参考文章

  • 理解 CRLF,LF

你可能感兴趣的:(CRLF will be replaced by LF)