文章目錄
使用 Git ADD 指令出現錯誤
同事反應無法使用 TortoiseGit 將新檔案 commit,後來進一步發現連加入 index 都不行,我接手後發現原現 git add
指令無法正常使用,一度以為是安裝 Git 時 CRLF 轉換的設定選錯,還嘗試重新安裝,但問題一樣存在,最後眼角餘光瞄到一個設定怪怪的,總算解決問題,立馬筆記一下
錯誤訊息
訊息內容
fatal: LF would be replaced by CRLF in c3.css
Error: libgit2 returned: LF would be replaced by CRLF in 'c3.css'
錯誤截圖
解決方式
取消 LF 與 CRLF 的轉換
LF 與 CRLF 的轉換是源自,Windows (使用 CRLF)與 UNIX (使用 LF) 兩個平台的換行符號不同造成的,而 GIT 源自 UNIX ,所以預設是使用 LF,所以在 Windows 上就會需要進行轉換(checkout 時將 LF 轉為 CRLF,commit 時則過來)
Windows 安裝 Git 時即預設轉換
手動指令取消轉換
git config --global core.autocrlf false
調整
.gitconfig
檔案位於
"C:\Users\{username}\.gitconfig"
[core] autocrlf = false
可能問題
Windows 原生的檔案格式就會跑掉
檢查 SafeCRLF 設定
同事設定取消 LF 轉換還是一樣無法 add 檔案,經檢查才發現是誤設定
SafeCRLF
,移除後就正常了錯誤設定
成功 add
心得
我第一時間並不曉得 SafeCRLF
的用途,經過查詢才清楚用途:
true
不允許 add 有
LR
與CRLF
混合的檔案false
允許 add 有
LR
與CRLF
混合的檔案warn
允許 add 有
LR
與CRLF
混合的檔案,但會出 warning
大膽猜測同事應該不是刻意設定 SafeCRLF
,可能在某些操作時不小心設定到的,實在是神手呀,用那麼久第一次看到這個設定,但也因為同事神手才讓我多暸解一個設定的含意,不過好像幫助有限XD
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。