Git 解決出現 warning: LF will be replaced by CRLF … The file will have its original line endings in your working directory.

在 windows,git add 可能會出現 LF will be replaced by CRLF 錯誤訊息

warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

原因是因為 windows 所使用的換行符號是 CRLF

Git 會在提交的時候為了將換行符號統一,將 CRLF 轉換為 LF,並且會在偵測到需轉換時,會提出警示訊息

若不希望出現此錯誤警示,不要將 CRLF轉換為LF,則可以執行以下指令:

rm -rf .git
git config --global core.autocrlf false
git init
git add .

但原則上,不建議將這個動作關閉

建議可以試試以下作法

git config --global core.autocrlf true
git config --global core.safecrlf true

再將LF轉換為CRLF

##[LF轉換為CRLF方法一]

用 NodePad++ 的 [檢視>特殊字元>顯示行尾字元(EOL)]

Ctrl + H 開啟取代功能,選取增強模式(\n,\r,\t,..),並且

搜尋目標 “\r” 取代為空白 搜尋目標 “\n” 取代為"\r\n"

[LF轉換為CRLF方法二]

使用批次刪除方式,一次做完

下載 (DOS2UNIX and UNIX2DOS for Windows)[http://www.bastet.com/uddu.zip] 並且解壓縮到專案根目錄

開啟命令列視窗且輸入以下指令:

for /f %f IN ( 'dir /b /s *.htm *.html *.css *.js *.txt *.cs *.aspx *.svg *.cshtml' ) DO @unix2dos %f

處理完成後,再將 UNIX2DOS.exe 和 UNIX2DOS.c 檔案刪除

https://help.github.com/articles/dealing-with-line-endings/ https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git