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