命令行操作git add添加文件时,提示LF will be replaced by CRLF the next time Git touches it,这个错误是出现在跨平台操作git的时候发生。

行结束符

不同的操作系统,行结束符的表示方法不一样。目前有两种表示:

  • LF:Unix 和 Unix-like 系统中使用的是\n,如 Linux 和 MacOS。
  • CRLF:windows上使用的是\r\n

Git处理行结束符

当不同操作系统操作文件时,Git会自动处理行换行符,所以就导致了下面的警告。

LF will be replaced by CRLF the next time Git touches it
LF will be replaced by CRLF the next time Git touches it

解决方法

Git提供了 core.autocrlf 选项来解决这个问题,我们可以根据不同的操作系统来设置它。

windows

git config --global core.autocrlf true

这段配置的意思是:检出的时候 LF 转为 CRLF,提交的时候 CRLF 转为 LF

Mac 或者 Linux

git config --global core.autocrlf input

这段配置的意思是:检出的时候不转换,提交的时候 CRLF 转为 LF

如果不想自动转换,可以配置 core.autocrlffalse

git config --global core.autocrlf false