假如你正在 Windows 上写程序,又或者你正在和其他人合作,他们在 Windows 上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为 Windows 使用回车和换行两个字符来结束一行,而 Mac 和 Linux 只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。
Git 可以在你提交时,自动地把行结束符 CRLF 转换成 LF,而在签出代码时把 LF 转换成 CRLF 。用 core.autocrlf 来打开此项功能,如果是在Windows 系统上,把它设置成 true,这样当签出代码时,LF 会被转换成 CRLF:
git config --global core.autocrlf true
Linux 或 Mac 系统使用 LF 作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以 CRLF 为行结束符的文件不小心被引入时,你肯定想进行修正,把 core.autocrlf 设置成 input 来告诉 Git 在提交时把 CRLF 转换成 LF,签出时不转换:
git config --global core.autocrlf input
参考上面的配置方法,你就可以在 Windows 系统上,签出文件时保留 CRLF,而在 Mac 和 Linux 系统上,包括仓库中,保留 LF 。
如果你是 Windows 程序员,且正在开发仅运行在 Windows 上的项目,可以设置 false 取消此功能,把回车符记录在库中:
git config --global core.autocrlf false