CRLF和 LF的區別及轉換

1.什麼是CRLF和LF

CRLF 是 carriage return line feed 的縮寫;中文意思是 回車換行。

LF 是 line feed 的縮寫,中文意思是換行。

2,爲什麼要探究CRLF和LF

在學習git軟件,安裝git到configuring the lien ending conversion時,有三個選項。

  • Checkout Windows-style,commit Unix-style line endings.
  • Checkout as-is,commit Unix-style line endings.
  • 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 a line 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.

意思很好理解,就不翻譯了。重視由於歷史的原因,各種不同的操作系統在處理行尾結束符采取了不同的處理方法。

3、三種方式處理的不同

  • CRLF->Windows-style
  • LF->Unix Style
  • CR->Mac Style

CRLF表示句尾使用回車換行兩個字符(即我們常在Windows編程時使用”\r\n”換行)

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

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。

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。

設置爲false時,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
    where x is either CRLF (windows-style) or LF (unix-style) and arrows stand for

file to commit -> repository -> checked out file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章