时不时就要百度一次这个问题,转载记录一下。
假如你正在 Windows 上写程序,又或者你正在和其他人合作,他们在 Windows 上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题。 这是因为 Windows 使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。
Windows
Git 可以在你提交时自动地把行结束符 CRLF 转换成 LF,而在签出代码时把 LF 转换成 CRLF。用 core.autocrlf
来打开此项功能, 如果是在 Windows 系统上,把它设置成true
,这样当签出代码时,LF 会被转换成 CRLF:
$ git config --global core.autocrlf true
Linux / Mac OS
Linux 或 Mac 系统使用 LF 作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以 CRLF 为行结束符的文件不小心被引入时你肯定想进行修正, 把 core.autocrlf
设置成 input 来告诉 Git 在提交时把 CRLF 转换成 LF,签出时不转换:
$ git config --global core.autocrlf input
这样会在 Windows 系统上的签出文件中保留 CRLF,会在 Linux 和 Mac 系统上,包括仓库中保留 LF。
Windows (另外的情况)
如果你是 Windows 程序员,且别人也全在 Windows 上开发项目,可以设置false
取消此功能,把回车符记录在库中:
$ git config --global core.autocrlf false
转载自:http://www.qinbin.me/git-core-autocrlf%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/