core.autocrlf=true 檢出時,git 會把文字檔案的換行符轉化為 crlf(只轉化純 lf 的檔案),提交時,把暫存區的內容轉化為 lf 然後放入版本庫。轉化暫存區的內容時,如果發現裡面存在 lf 換行符,lf 會被轉化成 crlf,並警告:「lf will be replaced by crlf」,但在工作區里,這個檔案會保持它原本的換行符。
假設設定 core.autocrlf=true ,工作區的檔案都應該用 crlf 來換行。如果改動檔案時引入了 lf,或者設定 core.autocrlf 之前,工作區已經有 lf 換行符。提交改動時,git 會警告你哪些檔案不是純 crlf 檔案,但 git 不會修改工作區警告檔案,只會修改暫存區。所以你下次git add時工作區依然有lf換行符,就還會出現這個警告。只要保持工作區都是用crlf換行就不會有問題了。window下最好保持core.autocrlf=true,避免混用換行出現問題。如果window下已經有換行符不匹配的情況,使用以下命令可以將目錄下所有檔案轉換,然後重新add commit push 就可以了
lf轉換成crlf
find
. -type f -print0 |
xargs -0 unix2dos
crlf轉lf
find
. -type f -print0 |
xargs -0 dos2unix
Ubuntu安裝dos2unix工具
ubuntu下預設沒有安裝dos2unix工具,而且也沒有乙個叫這個名字的工具 我在solaris裡用過dos2unix,不知道為啥ubuntu沒有 但是有乙個替代工具 tofrodos 下面就說一下它的安裝和使用。當然還是apt安裝啦。1 安裝tofrodos sudo apt get insta...
Ubuntu安裝dos2unix工具
ubuntu下預設沒有安裝dos2unix工具,而且也沒有乙個叫這個名字的工具 我在solaris裡用過dos2unix,不知道為啥ubuntu沒有 但是有乙個替代工具 tofrodos 下面就說一下它的安裝和使用。當然還是apt安裝啦。1 安裝tofrodos sudo apt get insta...
dos2unix整個目錄
因為經常在windos平台和linux平台之間協同開發,所以不可避免的就碰到了crlf的問題,dos2unix 和 unix2dos可以說是最常用的解決crlf問題的工具了。下面列出怎麼對整個目錄中的問題做dos2unix操作 find type f exec dos2unix 其中具體命令的解釋如...