GIT 換行符自動轉換導致整個文件被修改的解決方案

不少開發者可能遇到過這個問題:從git上拉取服務端代碼,然後只修改了一處地方,準備提交時,用diff軟件查看,卻發現整個文件都被修改了。這是git自動轉換換行符導致的問題

原因:

不同操作系統使用的換行符是不一樣的。Unix/Linux使用的是LF,Mac後期也採用了LF,但Windows一直使用CRLF【回車(CR, ASCII 13, \r) 換行(LF, ASCII 10, \n)】作爲換行符。而git入庫的代碼採用的是LF格式,它考慮到了跨平臺協作的場景,提供了“換行符自動轉換”的功能:如果在Windows下安裝git,在拉取文件時,會自動將LF換行符替換爲CRLF;在提交時,又會將CRLF轉回LF。但是這個轉換是有問題的:有時提交時,CRLF轉回LF可能會不工作,尤其是文件中出現中文字符後有換行符時。

解決方案

1.禁用git的自動換行功能:

在本地路徑C:\ Users\ [用戶名] \ .gitconfig下修改git配置[core],如果沒有就直接添加上去:

[core]

autocrlf = false

filemode = false

safecrlf = true

 

git bash命令行也可以修改,最終也是修改.gitconfig配置文件:

分別執行:

 

git config --global core.autocrlf false

git config --global core.filemode false

git config --global core.safecrlf true

 

2.配置IDE開發環境,將它的換行格式指定爲LF,以android studio爲例:

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