Git :LF will be replaced by CRLF in readme.txt的原因与解决方案
今天用Git bash遇到的問題,看了幾個(gè)回答之后發(fā)現(xiàn)一個(gè)比較有價(jià)值的,給大家分享一下,其他很多的回答都有很或多或少存在一些弊端。
原回答地址在stackoverflow上,附上鏈接--http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf
這里我把主要的東西提煉一下翻譯成中文供大家參考。
?
首先問題出在不同操作系統(tǒng)所使用的換行符是不一樣的,下面羅列一下三大主流操作系統(tǒng)的換行符:
Uinx/Linux采用換行符LF表示下一行(LF:LineFeed,中文意思是換行);
Dos和Windows采用回車+換行CRLF表示下一行(CRLF:CarriageReturn LineFeed,中文意思是回車換行);
Mac OS采用回車CR表示下一行(CR:CarriageReturn,中文意思是回車)。
?
在Git中,可以通過以下命令來顯示當(dāng)前你的Git中采取哪種對(duì)待換行符的方式
?
$ git config core.autocrlf此命令會(huì)有三個(gè)輸出,“true”,“false”或者“input”
?
為true時(shí),Git會(huì)將你add的所有文件視為文本文件,將結(jié)尾的CRLF轉(zhuǎn)換為L(zhǎng)F,而checkout時(shí)會(huì)再將文件的LF格式轉(zhuǎn)為CRLF格式。
為false時(shí),line endings不做任何改變,文本文件保持其原來的樣子。
為input時(shí),add時(shí)Git會(huì)把CRLF轉(zhuǎn)換為L(zhǎng)F,而check時(shí)仍舊為L(zhǎng)F,所以Windows操作系統(tǒng)不建議設(shè)置此值。
?
解決辦法:
將core.autocrlf設(shè)為false即可解決這個(gè)問題,不過如果你和你的伙伴只工作于Windows平臺(tái)或者Linux平臺(tái),那么沒問題,不過如果是存在跨平臺(tái)的現(xiàn)象的話,還是需要考慮一下。
但當(dāng) core autocrlf為true時(shí),還有一個(gè)需要慎重的地方,當(dāng)你上傳一個(gè)二進(jìn)制文件,Git可能會(huì)將二進(jìn)制文件誤以為是文本文件,從而也會(huì)修改你的二進(jìn)制文件,從而產(chǎn)生隱患。
?
PS:
附上修改autocrlf的命令,以改為true為例:
?
$ git config --global core.autocrlf true #true的位置放你想使autocrlf成為的結(jié)果,true,false或者input總結(jié)
以上是生活随笔為你收集整理的Git :LF will be replaced by CRLF in readme.txt的原因与解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GCC : 什么是编译?什么是静态库?什
- 下一篇: Git : 将本地git仓库同步到远端g