是什么?
每次按键盘上的 回车
按键时,会插入一个称为行结束符的不可见字符。不同操作系统处理行结束符的方式不同。
CRLF
:回车换行(carriage return/line feed)
LF
:换行(line feed)
CR
:回车(carriage return)
为什么?
因为不同操作系统对于行结束符的处理方式不同,所以当你在 Windows 系统上开发,而其他人在 Linux 或者 Mac 系统上开发时,会遇到换行符的问题。
怎么做?
不同系统的行结束符:
Windows:CRLF
Unix:LF
Mac:CR
Git 中如何设置
1、在 Git 的安装步骤中,有一步的选项是:Configuring the line ending conversions
,可以选择换行规则。
这里的三个选项对应下面 2
中三个设置项
2、通过全局配置:core.autocrlf
,设置为 true 时,添加到 Git 仓库的文件都会自动由 CRLF 转为 LF,默认为 false。
git config --global core.autocrlf true
core.crlf
可设置三个值:
file to commit -> repostory -> checked out file
1、true:x -> LF -> CRLF
git config --global core.crlf true
Git 会在提交到仓库的时候,自动把行结束符 CRLF 转换成 LF,而在 checkout 代码时把 LF 转换成 CRLF。如果在 Windows 上开发,可以设置为 true,这样在仓库中是 LF,本地是 CRLF。
2、input:x -> LF -> LF
git config --global core.crlf input
如果使用 LF 作为行结束符,当一个以 CRLF 为行结束符的文件被引入时,会自动被转换为 LF 格式提交到仓库中。
3、false:x -> x -> x
git config --global core.crlf false
如果只在同一个平台上面开发,可以设置为 false,把回车符记录在仓库中。