Android Studio 默认换行符CRLF和LF


CRLF LF CR是啥

  • CRLF: carriagereturnlinefeed的缩写,回车换行的意思。Windows系统使用CRLF当做换行。

  • LF: line feed的缩写,换行意思。Unix(包含现在大量使用的linux)系统使用LF。

  • CR: carriagereturn的缩写,回车的意思。早期的mac系统使用CR当做换行,现在也已经统一成了LF。

出现的问题

不同平台的换行回车不一致,导致项目在不同平台下代码看上去无任何差别,然而通过git提交时会有如下提示

解决办法

  • AndroidStudio全局换行设置 File > Line Separators

  • 设置新建文件默认换行符 File > Settings > Code Style > General > Line separator

  • 检查配置是否生效:打开任意文件或者新建文件,查看右下角

可能存在的其他问题

按照以上方法更改后可能会出现大量文件 Contents are identical No differences问题

查了一下大致还是换行问题,不过已经不影响了,建议将这些文件 Rollback Changes (典型的不懂还爱瞎给建议)

可以在终端中输入以下命令

  • 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
  • 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
  • 提交检出均不转换
git config --global core.autocrlf false

如果把 autocrlf 设置为 false 时,那另一个配置项 safecrlf 最好设置为 ture。该选项用于检查文件是否包含混合换行符,其有三个可选项:

  • 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
  • 允许提交包含混合换行符的文件
git config --global core.safecrlf false
  • 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

文章作者: PudgeLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 PudgeLee !
评论