先看一下不同操作系统各自默认的行尾换行符:
macOS: CR
Linux/Unix: LF
Windows: CRLF
如果在 git 的配置中:
[core]
autocrlf = auto
如果 autocrlf
配置为 auto
,那么在 macOS 上的源码检出的时候,行尾就会被替换为 CR
,但是现在 macOS 上早已经和 Linux/Unix 一样统一使用 LF
作为行尾换行符了。
正确的配置是在 macOS / Linux / Unix 上,把 autocrlf
配置为 input
:
[core]
autocrlf = input
在检出的时候就不会转换行尾换行符。
如果需要统一替换已经被搞混乱的行尾,可以使用工具 endlines
: https://github.com/mdolidon/endlines
使用方法非常简单:
$ endlines unix *