Git 多平臺(tái)換行符問(wèn)題(LF or CRLF)

在不同的操作系統(tǒng)上贱除,使用git提交代碼時(shí)生闲,可能遇到如下提示:

warning: CRLF will be replaced by LF in index.html.
warning: LF will be replaced by CRLF

背景:本人在 Mac下提交html代碼,報(bào)出
warning: CRLF will be replaced by LF in index.html.無(wú)法提交代碼月幌。

CR為回車符碍讯,LF為換行符。Windows結(jié)束一行用CRLF扯躺,Mac和Linux用LF捉兴。
文本文件所使用的換行符,在不同的系統(tǒng)平臺(tái)上是不一樣的录语。


到此時(shí)倍啥,就在想:為什么提交代碼會(huì)出現(xiàn)這個(gè)問(wèn)題,之前一直使用git怎么沒(méi)有出現(xiàn)過(guò)澎埠;仔細(xì)想了一番虽缕,出現(xiàn)如此提示的原因可能如下:

  • 在Mac/Linux下提交html代碼,報(bào)出
    warning: CRLF will be replaced by LF in heart/index.html.

是因?yàn)槠盐龋闾峤坏拇a里面包含CRLF方式的換行氮趋,需要轉(zhuǎn)化為Mac/Linux平臺(tái)的換行。

可能的原因:你提交的html代碼江耀,或許你引入了框架凭峡、或者你粘貼了別人博客的代碼,而這些框架/別人博客的代碼决记,是別人在Windows平臺(tái)完成的摧冀,代碼中自然是使用CRLF方式的換行,你copy到你的工程里面,編輯器并不會(huì)自動(dòng)給你轉(zhuǎn)化成你目標(biāo)平臺(tái)(Mac/linux)的換行方式索昂。

ps:可以使用 dos2unix 轉(zhuǎn)換工具來(lái)完成建车,Windows 上 Git bash 客戶端自帶了該工具,手動(dòng)將文件的換行符轉(zhuǎn)化為 LF椒惨。

  • 類似的,在windows下提交提交html代碼缤至,報(bào)出
    warning: LF will be replaced by CRLF

是因?yàn)椋闾峤坏拇a里面包含LF方式的換行康谆,需要轉(zhuǎn)化為windows平臺(tái)的CRLF換行领斥。

可能的原因:你提交的html代碼,或許你引入了框架沃暗、或者你粘貼了別人博客的代碼月洛,而這些框架/別人博客的代碼,是別人在Mac/linux平臺(tái)完成的孽锥,代碼中自然是使用LF方式的換行嚼黔,你copy到你的工程里面,編輯器并不會(huì)自動(dòng)給你轉(zhuǎn)化成你目標(biāo)平臺(tái)(Windows)的換行方式惜辑。

Git 在設(shè)計(jì)時(shí)就考慮了這一點(diǎn)唬涧,其提供了一個(gè) autocrlf的配置項(xiàng),用于在提交和檢出時(shí)自動(dòng)轉(zhuǎn)換換行符盛撑,該配置有三個(gè)可選項(xiàng):

  • true: 提交時(shí)轉(zhuǎn)換為 LF碎节,檢出時(shí)轉(zhuǎn)換為 CRLF
  • false: 提交檢出均不轉(zhuǎn)換
  • input: 提交時(shí)轉(zhuǎn)換為L(zhǎng)F,檢出時(shí)不轉(zhuǎn)換



初次遇到這個(gè)問(wèn)題抵卫,當(dāng)然網(wǎng)上也有最簡(jiǎn)單的解決方式
git config --global core.autocrlf false #提交和檢出代碼都不轉(zhuǎn)化
不轉(zhuǎn)化意味著狮荔,你使用的目標(biāo)平臺(tái)有一套換行方式,引入的別人的代碼一套方式陌僵,這兩種方式混合并存且不轉(zhuǎn)化,那以后這份代碼在任何平臺(tái)上檢出/提交 都會(huì)有問(wèn)題创坞,因?yàn)樗膿Q行方式總是一部分和使用的平臺(tái)相符碗短,一部分不相符。

因此不推薦使用這種方式题涨,除非你這次提交的東西偎谁,以后幾乎不會(huì)用到/改動(dòng),只用于以后瀏覽纲堵。

要是以后會(huì)用到巡雨,如何處理才好呢?

一句話席函,還是和具體使用的平臺(tái)相關(guān)铐望。

  • false表示取消自動(dòng)轉(zhuǎn)換功能。適合純Windows
  • true表示提交代碼時(shí)把CRLF轉(zhuǎn)換成LF,簽出時(shí)LF轉(zhuǎn)換成CRLF正蛙。適合多平臺(tái)協(xié)作
  • input表示提交時(shí)把CRLF轉(zhuǎn)換成LF督弓,檢出時(shí)不轉(zhuǎn)換。適合純Linux或Mac

1乒验、如果這些代碼愚隧,只在一種平臺(tái)上使用,跟具體平臺(tái)相關(guān)锻全,那只需要把你引入的 別人代碼的換行方式狂塘,換成你使用平臺(tái)的方式即可。轉(zhuǎn)化后鳄厌,在以后提交和檢出代碼都不會(huì)出問(wèn)題荞胡。

2、如果跨平臺(tái)協(xié)作部翘,
例如:A使用Mac/Linux硝训,B使用Windows;

現(xiàn)在B獲取A的代碼新思,B需要在自己的機(jī)器上設(shè)置 git config --global core.autocrlf true窖梁。
B檢出代碼時(shí),轉(zhuǎn)化成自己Windows方式的CRLF夹囚,提交時(shí)轉(zhuǎn)化為L(zhǎng)F纵刘,和A保持一致。

還有荸哟,最好不要設(shè)置safecrlf為false假哎,即允許兩種方式并存。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鞍历,一起剝皮案震驚了整個(gè)濱河市舵抹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劣砍,老刑警劉巖惧蛹,帶你破解...
    沈念sama閱讀 212,080評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異刑枝,居然都是意外死亡香嗓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)装畅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)靠娱,“玉大人,你說(shuō)我怎么就攤上這事掠兄∠裨疲” “怎么了锌雀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,630評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)苫费。 經(jīng)常有香客問(wèn)我汤锨,道長(zhǎng),這世上最難降的妖魔是什么百框? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,554評(píng)論 1 284
  • 正文 為了忘掉前任闲礼,我火速辦了婚禮,結(jié)果婚禮上铐维,老公的妹妹穿的比我還像新娘柬泽。我一直安慰自己,他們只是感情好嫁蛇,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布锨并。 她就那樣靜靜地躺著,像睡著了一般睬棚。 火紅的嫁衣襯著肌膚如雪第煮。 梳的紋絲不亂的頭發(fā)上西雀,一...
    開(kāi)封第一講書(shū)人閱讀 49,856評(píng)論 1 290
  • 那天砂竖,我揣著相機(jī)與錄音,去河邊找鬼诞挨。 笑死底靠,一個(gè)胖子當(dāng)著我的面吹牛害晦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播暑中,決...
    沈念sama閱讀 39,014評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼壹瘟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鳄逾?” 一聲冷哼從身側(cè)響起稻轨,我...
    開(kāi)封第一講書(shū)人閱讀 37,752評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雕凹,沒(méi)想到半個(gè)月后殴俱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡请琳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評(píng)論 2 327
  • 正文 我和宋清朗相戀三年粱挡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赠幕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俄精。...
    茶點(diǎn)故事閱讀 38,687評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榕堰,靈堂內(nèi)的尸體忽然破棺而出竖慧,到底是詐尸還是另有隱情嫌套,我是刑警寧澤,帶...
    沈念sama閱讀 34,347評(píng)論 4 331
  • 正文 年R本政府宣布圾旨,位于F島的核電站踱讨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏砍的。R本人自食惡果不足惜痹筛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廓鞠。 院中可真熱鬧帚稠,春花似錦、人聲如沸床佳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,777評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砌们。三九已至杆麸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浪感,已是汗流浹背昔头。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,006評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留篮撑,地道東北人减细。 一個(gè)月前我還...
    沈念sama閱讀 46,406評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赢笨,于是被迫代替她去往敵國(guó)和親未蝌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容