博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CRLF和LF
阅读量:5754 次
发布时间:2019-06-18

本文共 2859 字,大约阅读时间需要 9 分钟。

夹:

  1. 什么是CRLF和LF
  2. 为什么要探究CRLF和LF
  3. 三种方式处理的不同
  4. 很多其它
  5. 參考文献

1、什么是CRLF和LF

CRLF 是carriagereturnline feed的缩写。中文意思是回车换行。

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

2、为什么要探究CRLF和LF

在学习git软件,安装git到configuring the lien ending conversion时,有三个选项。

a. Checkout Windows-style,commit Unix-style line endings.

b.Checkout as-is,commit Unix-style line endings.

c.Checkout as-is,commit as-is line endings.

这里面讲到了做两个操作(Checkout,Commit)的三种处理line endings的操作(Windows-style,Unix-style,As-is)。

为什么会出现这三种处理line endings(行尾结束符)呢?在Git的帮助页面给出了非常好的解释。

Reference From:https://help.github.com/articles/dealing-with-line-endings

If you're using Git to collaborate with others on GitHub, ensure that Git isproperly configured to handle line endings.

Every time you press return on your keyboard you're actuallyinserting an invisible character called aline ending. Historically, differentoperating systems have handled line endings differently.

When you view changes in a file, Git handles line endings in its own way.Since you're collaborating on projects with Git and GitHub, Git mightproduce unexpected results if, for example, you're working on a Windows machine,and your collaborator has made a change in OS X.

意思非常好理解,就不翻译了。重视因为历史的原因,各种不同的操作系统在处理行尾结束符採取了不同的处理方法。

而Git和GitHub

3、三种方式处理的不同

CRLF->Windows-style

LF->Unix Style

CR->Mac Style

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

LF表示表示句尾。仅仅使用换行.

CR表示仅仅使用回车.

4、在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。【2】

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。

【2】

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

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

这是參考文献2给的解释希望能帮助大家。

Yet another way to show howautocrlf works

1) true:             x -> LF -> CRLF2) input:            x -> LF -> LF3) false:            x -> x -> x

where x is either CRLF (windows-style) or LF (unix-style) and arrows stand for

file to commit -> repository -> checked out file

很多其它:

更为复杂的配置命令见站点:https://www.kernel.org/pub/software/scm/git/docs/git-config.html

关于LF和CRLF讨论见:http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf

You can also provide a special--global flag, which makes Git usethe same settings for line endings acrossevery local Git repository on your computer.

參考文献

【1】https://help.github.com/articles/dealing-with-line-endings

【2】http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf

版权声明:本文博主原创文章,转载请联系博主,博客,未经同意不得转载。

你可能感兴趣的文章
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>
PHP安装环境,服务器不支持curl_exec的解决办法
查看>>
jQuery|元素遍历
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>
上云就是这么简单——阿里云10分钟快速入门
查看>>