陈斌彬的技术博客

Stay foolish,stay hungry

Git core.autocrlf 配置说明

CRLF and LF

CRLF 是 Carriage-Return Line-Feed 回车换行

LF 是 line feed 的缩写,中文意思是换行。

三种方式处理的不同

CRLF->Windows-style

LF->Unix Style

CR->Mac Style

CRLF 表示句尾使用回车换行两个字符(即我们常在Windows编程时使用"\r\n"换行)

LF 表示表示句尾,只使用换行.

CR 表示只使用回车.

在 Git 中转换

在 Git 通过下面的命令配置

$git config --global core.autocrlf true
# Configure Git on Windows to properly handle line endings

解释:core.autocrlf 是 git 中负责处理 line endings 的变量,可以设置三个值 –true,inout,false.

设置成三个值会有什么效果呢?

If core.autocrlf is set to true, that means that any time you add a file to the git repo that git thinks is a text file, it will turn all CRLF line endings to just LF before it stores it in the commit.

设置为 true,添加文件到 git 仓库时,git 将其视为文本文件。他将把 crlf 变成 lf。

If core.autocrlf is set to false, no line-ending conversion is ever performed, so text files are checked in as-is. This usually works ok.

设置为 fals e时,line-endings 将不做转换操作。文本文件保持原来的样子。

设置为 input 时,添加文件git仓库时,git 把 crlf 编程 lf。当有人 Check 代码时还 是lf 方式。因此在 window操 作系统下,不要使用这个设置。

Yet another way to show how autocrlf works

1) true:             x -> LF -> CRLF
2) input:            x -> LF -> LF
3) false:            x -> x -> x

On OS X, you simply pass input to the configuration. For example:

git config --global core.autocrlf input
# Configure Git on OS X to properly handle line endings

Resource Reference