遇到這兩個錯誤, 基本上都是叫你將 autocrlf 設定為 false. 但是我覺得這樣很不妥。
如果你的原始檔中是換行符是lf,而autocrlf=true, 此時git add就會遇到 fatal: lf would be replaced by crlf 的錯誤。有兩個解決辦法:
將你的原始檔中的lf轉為crlf即可【推薦】
將autocrlf 設定為 false
如果你的原始檔中是換行符是crlf,而autocrlf=input, 此時git add也會遇到 fatal: crlf would be replaced by lf 的錯誤。有兩個解決辦法:
將你原始檔中的crlf轉為lf【推薦】
將autocrlf 設定為true 或者 false
我的建議:在mac上設定 autocrlf = input, 在windows上設定autocrlf = true(預設值)。
這樣的話,
windows:(true)
提交時,將crlf 轉成 lf再提交;
切出時,自動將lf 轉為 crlf;
mac/linux: (input)
提交時, 將crlf 轉成 lf再提交;
切出時,保持lf即可
這樣即可保證倉庫中永遠都是lf. 而且在windows工作空間都是crlf, 在mac/linux工作空間都是lf.
假如你正在windows上寫程式,又或者你正在和其他人合作,他們在windows上程式設計,而你卻在其他系統上,在這些情況下,你可能會遇到行尾結束符問題。這是因為windows使用回車和換行兩個字元來結束一行,而mac和linux只使用換行乙個字元。雖然這是小問題,但它會極大地擾亂跨平台協作。
git可以在你提交時自動地把行結束符crlf轉換成lf,而在簽出**時把lf轉換成crlf。用core.autocrlf來開啟此項功能,如果是在windows系統上,把它設定成true,這樣當簽出**時,lf會被轉換成crlf:
$ git config --global core.autocrlf true
linux或mac系統使用lf作為行結束符,因此你不想 git 在簽出檔案時進行自動的轉換;當乙個以crlf為行結束符的檔案不小心被引入時你肯定想進行修正,把core.autocrlf設定成input來告訴 git 在提交時把crlf轉換成lf,簽出時不轉換:
$ git config --global core.autocrlf input
這樣會在windows系統上的簽出檔案中保留crlf,會在mac和linux系統上,包括倉庫中保留lf。
如果你是windows程式設計師,且正在開發僅執行在windows上的專案,可以設定false取消此功能,把回車符記錄在庫中:
$ git config --global core.autocrlf false
git中配置autocrlf來正確處理crlf
在使用git的過程中,如果我們的專案是跨平台開發的 那麼crlf的處理也許會成為乙個很頭疼的事情,有可能會出以下的莫名其妙的問題 我們的某個開發人員在linux上提交的乙個檔案,當從windows上pull下來後,沒做任何的修改,檢視其status,它的狀態已經是modifed了 即使你使用git ...
git中ssh配置方法
前提 必須先安裝好git for windows 即msysgit 和tortoisegit 一,檢查本地是否已存在ssh cd ssh ls 如果存在id rsa.pub或者id dsa.pub則表示你之前已經建立了,如果沒有,則繼續下一步。二,生成 ssh 開啟git bash cd 一路回車直...
vscode中配置git終端
1 第一步,確保,自己的window系統有安裝全域性安裝git 2 第二步 在vscode中配置git 解決 檔案 首選項 設定 在使用者設定中搜尋 git.path git.path為null 將git.path路徑改為自己計算機中git.path的路徑,以下路徑是我安裝git的位置 查詢git位...