记一个git的坑: 换行符问题

git 2017-03-27

起步

20170327145409.png

文件是在本地(windows)编辑的,发现与其他平台检出的问题不一样。不同操作系统的换行符不一样,windows下的换行符是 CRLF , linux/mac 下的换行符是 LF 。git有个关于这种转换的设置:autocrlf

默认设置

linux下 core.autocrlf input 检出时不进行转换。

windows core.autocrlf true ,提交时自动地把行结束符 CRLF 转换成 LF ,签出代码时把 LF 转换成 CRLF

因此我的问题就是我将windows检出的脚本传到linux上执行, CRLF 的文件就会报语法错误了。

配置详解

提交时转换成 LF ,检出时转换为 CRLF

git config --global core.autocrlf true

提交时把CRLF转换成LF,签出时不转换:

git config --global core.autocrlf input

提交和检出都不转换:

git config --global core.autocrlf false

额外

safecrlf 能提供检查 拒绝提交包含混合换行符的文件:

git config --global core.safecrlf true   

允许提交包含混合换行符的文件:

git config --global core.safecrlf false   

提交包含混合换行符的文件时给出警告:

git config --global core.safecrlf warn

本文由 hongweipeng 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

如果对您有用,您的支持将鼓励我继续创作!